HDFS-4000. TestParallelLocalRead fails with "input ByteBuffers must be direct buffers". Contributed by Colin Patrick McCabe

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1393884 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Eli Collins 2012-10-04 02:41:04 +00:00
parent 2c66a9f5ae
commit 38943644e0
2 changed files with 6 additions and 1 deletions

View File

@ -276,6 +276,9 @@ Release 2.0.3-alpha - Unreleased
HDFS-3753. Tests don't run with native libraries. HDFS-3753. Tests don't run with native libraries.
(Colin Patrick McCabe via eli) (Colin Patrick McCabe via eli)
HDFS-4000. TestParallelLocalRead fails with "input ByteBuffers
must be direct buffers". (Colin Patrick McCabe via eli)
Release 2.0.2-alpha - 2012-09-07 Release 2.0.2-alpha - 2012-09-07
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -83,7 +83,7 @@ static interface ReadWorkerHelper {
static class DirectReadWorkerHelper implements ReadWorkerHelper { static class DirectReadWorkerHelper implements ReadWorkerHelper {
@Override @Override
public int read(DFSInputStream dis, byte[] target, int startOff, int len) throws IOException { public int read(DFSInputStream dis, byte[] target, int startOff, int len) throws IOException {
ByteBuffer bb = ByteBuffer.wrap(target); ByteBuffer bb = ByteBuffer.allocateDirect(target.length);
int cnt = 0; int cnt = 0;
synchronized(dis) { synchronized(dis) {
dis.seek(startOff); dis.seek(startOff);
@ -95,6 +95,8 @@ public int read(DFSInputStream dis, byte[] target, int startOff, int len) throws
cnt += read; cnt += read;
} }
} }
bb.clear();
bb.get(target);
return cnt; return cnt;
} }