You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2006/07/25 09:46:11 UTC
svn commit: r425318 - in
/incubator/harmony/enhanced/classlib/trunk/modules/nio/src:
main/java/org/apache/harmony/nio/internal/FileChannelImpl.java
test/java/common/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java
Author: pyang
Date: Tue Jul 25 00:46:11 2006
New Revision: 425318
URL: http://svn.apache.org/viewvc?rev=425318&view=rev
Log:
Fix for HARMONY-972 ([classlib][nio]java.nio.channels.FileChannel.read(ByteBuffer,long) fails to read with a positioned bytebuffer correctly)
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java
incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java?rev=425318&r1=425317&r2=425318&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java Tue Jul 25 00:46:11 2006
@@ -275,7 +275,8 @@
* if (bytesRead <= EOF) delt by read completed = false;
*/
bytesRead = (int) fileSystem.read(handle, buffer.array(),
- buffer.arrayOffset(), buffer.remaining());
+ buffer.arrayOffset() + buffer.position(), buffer
+ .remaining());
completed = true;
} finally {
end(completed && bytesRead >= 0);
Modified: incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java?rev=425318&r1=425317&r2=425318&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/nio/src/test/java/common/org/apache/harmony/tests/java/nio/channels/FileChannelTest.java Tue Jul 25 00:46:11 2006
@@ -1339,11 +1339,16 @@
writeDataToFile(fileOfReadOnlyFileChannel);
ByteBuffer readBuffer = ByteBuffer.allocate(CAPACITY);
+ final int BUFFER_POSITION = 1;
+ readBuffer.position(BUFFER_POSITION);
+
final int POSITION = 2;
int result = readOnlyFileChannel.read(readBuffer, POSITION);
assertEquals(CONTENT_AS_BYTES_LENGTH - POSITION, result);
+ assertEquals(BUFFER_POSITION + result, readBuffer.position());
readBuffer.flip();
+ readBuffer.position(BUFFER_POSITION);
for (int i = POSITION; i < CONTENT_AS_BYTES_LENGTH; i++) {
assertEquals(CONTENT_AS_BYTES[i], readBuffer.get());
}