HDFS-5756. hadoopRzOptionsSetByteBufferPool does not accept NULL argument, contrary to docs. Contributed by Colin Patrick McCabe.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1557244 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8e0ba42df4
commit
7354547a02
|
@ -741,6 +741,9 @@ Release 2.4.0 - UNRELEASED
|
||||||
|
|
||||||
HDFS-5449. WebHdfs compatibility broken between 2.2 and 1.x / 23.x (kihwal)
|
HDFS-5449. WebHdfs compatibility broken between 2.2 and 1.x / 23.x (kihwal)
|
||||||
|
|
||||||
|
HDFS-5756. hadoopRzOptionsSetByteBufferPool does not accept NULL argument,
|
||||||
|
contrary to docs. (cmccabe via wang)
|
||||||
|
|
||||||
BREAKDOWN OF HDFS-2832 SUBTASKS AND RELATED JIRAS
|
BREAKDOWN OF HDFS-2832 SUBTASKS AND RELATED JIRAS
|
||||||
|
|
||||||
HDFS-4985. Add storage type to the protocol and expose it in block report
|
HDFS-4985. Add storage type to the protocol and expose it in block report
|
||||||
|
|
|
@ -2174,16 +2174,18 @@ int hadoopRzOptionsSetByteBufferPool(
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: we don't have to call hadoopRzOptionsClearCached in this
|
if (className) {
|
||||||
// function, since the ByteBufferPool is passed separately from the
|
// Note: we don't have to call hadoopRzOptionsClearCached in this
|
||||||
// EnumSet of ReadOptions.
|
// function, since the ByteBufferPool is passed separately from the
|
||||||
|
// EnumSet of ReadOptions.
|
||||||
|
|
||||||
jthr = constructNewObjectOfClass(env, &byteBufferPool, className, "()V");
|
jthr = constructNewObjectOfClass(env, &byteBufferPool, className, "()V");
|
||||||
if (jthr) {
|
if (jthr) {
|
||||||
printExceptionAndFree(env, jthr, PRINT_EXC_ALL,
|
printExceptionAndFree(env, jthr, PRINT_EXC_ALL,
|
||||||
"hadoopRzOptionsSetByteBufferPool(className=%s): ", className);
|
"hadoopRzOptionsSetByteBufferPool(className=%s): ", className);
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (opts->byteBufferPool) {
|
if (opts->byteBufferPool) {
|
||||||
// Delete any previous ByteBufferPool we had.
|
// Delete any previous ByteBufferPool we had.
|
||||||
|
|
|
@ -140,6 +140,12 @@ static int doTestZeroCopyReads(hdfsFS fs, const char *fileName)
|
||||||
EXPECT_NULL(hadoopReadZero(file, opts, TEST_ZEROCOPY_FULL_BLOCK_SIZE));
|
EXPECT_NULL(hadoopReadZero(file, opts, TEST_ZEROCOPY_FULL_BLOCK_SIZE));
|
||||||
EXPECT_INT_EQ(EPROTONOSUPPORT, errno);
|
EXPECT_INT_EQ(EPROTONOSUPPORT, errno);
|
||||||
|
|
||||||
|
/* Verify that setting a NULL ByteBufferPool class works. */
|
||||||
|
EXPECT_ZERO(hadoopRzOptionsSetByteBufferPool(opts, NULL));
|
||||||
|
EXPECT_ZERO(hadoopRzOptionsSetSkipChecksum(opts, 0));
|
||||||
|
EXPECT_NULL(hadoopReadZero(file, opts, TEST_ZEROCOPY_FULL_BLOCK_SIZE));
|
||||||
|
EXPECT_INT_EQ(EPROTONOSUPPORT, errno);
|
||||||
|
|
||||||
/* Now set a ByteBufferPool and try again. It should succeed this time. */
|
/* Now set a ByteBufferPool and try again. It should succeed this time. */
|
||||||
EXPECT_ZERO(hadoopRzOptionsSetByteBufferPool(opts,
|
EXPECT_ZERO(hadoopRzOptionsSetByteBufferPool(opts,
|
||||||
ELASTIC_BYTE_BUFFER_POOL_CLASS));
|
ELASTIC_BYTE_BUFFER_POOL_CLASS));
|
||||||
|
|
Loading…
Reference in New Issue