Index: /harmony/modules/luni/src/main/java/java/io/FileInputStream.java =================================================================== --- /harmony/modules/luni/src/main/java/java/io/FileInputStream.java (revision 391579) +++ /harmony/modules/luni/src/main/java/java/io/FileInputStream.java (working copy) @@ -271,6 +271,11 @@ synchronized (repositioningLock) { final long currentPosition = fileSystem.seek(fd.descriptor, 0L, IFileSystem.SEEK_CUR); + final long endPosition = fileSystem.seek(fd.descriptor, 0L, + IFileSystem.SEEK_END); + if (endPosition <= count + currentPosition) { + count = endPosition - currentPosition; + } final long newPosition = fileSystem.seek(fd.descriptor, currentPosition + count, IFileSystem.SEEK_SET); return newPosition - currentPosition;