diff --git a/NEWS.md b/NEWS.md index 36f43f9c..7317e997 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,8 @@ +5.3.4 (2018-01-04) +------------------ + +- Revert 5.3.3 changes to RandomAccessFile.setLength in NIOFileHandle ([#21](https://github.com/ome/ome-common-java/pull/21)) + 5.3.3 (2017-10-20) ------------------ diff --git a/src/main/java/loci/common/NIOFileHandle.java b/src/main/java/loci/common/NIOFileHandle.java index bf291b8b..d370e588 100644 --- a/src/main/java/loci/common/NIOFileHandle.java +++ b/src/main/java/loci/common/NIOFileHandle.java @@ -105,8 +105,6 @@ public class NIOFileHandle extends AbstractNIOHandle { /** The original length of the file. */ private Long defaultLength; - private long effectiveLength; - // -- Constructors -- /** @@ -123,7 +121,6 @@ public NIOFileHandle(File file, String mode, int bufferSize) mapMode = FileChannel.MapMode.READ_WRITE; } raf = new RandomAccessFile(file, mode); - effectiveLength = raf.length(); channel = raf.getChannel(); byteBufferProvider = new NIOByteBufferProvider(channel, mapMode); buffer(position, 0); @@ -202,9 +199,8 @@ public int getBufferSize() { @Override public void setLength(long length) throws IOException { if (raf.length() < length) { - raf.setLength(length + getBufferSize()); + raf.setLength(length); } - effectiveLength = length; raf.seek(length - 1); buffer = null; } @@ -214,9 +210,6 @@ public void setLength(long length) throws IOException { /* @see IRandomAccess.close() */ @Override public void close() throws IOException { - if (isReadWrite && channel.isOpen() && raf.length() != length()) { - raf.setLength(length()); - } raf.close(); } @@ -232,7 +225,7 @@ public long length() throws IOException { if (defaultLength != null) { return defaultLength; } - return effectiveLength; + return raf.length(); } /* @see IRandomAccess.getOrder() */