Author: centic
Date: Tue Sep 20 20:24:54 2016
New Revision: 1761636

URL: http://svn.apache.org/viewvc?rev=1761636&view=rev
Log:
Adjust handling of ByteBuffer some more

Modified:
    poi/trunk/src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java

Modified: poi/trunk/src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java?rev=1761636&r1=1761635&r2=1761636&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java 
(original)
+++ poi/trunk/src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java Tue 
Sep 20 20:24:54 2016
@@ -88,27 +88,26 @@ public class FileBackedDataSource extend
          throw new IndexOutOfBoundsException("Position " + position + " past 
the end of the file");
       }
       
-      // Do we read or map (for read/write?
+      // Do we read or map (for read/write)?
       ByteBuffer dst;
-      int worked = -1;
       if (writable) {
           dst = channel.map(FileChannel.MapMode.READ_WRITE, position, length);
-          worked = 0;
-          // remember the buffer for cleanup if necessary
-          buffersToClean.add(dst);  
+
+          // remember this buffer for cleanup
+          buffersToClean.add(dst);
       } else {
-          // Read
+          // allocate the buffer on the heap if we cannot map the data in 
directly
           channel.position(position);
           dst = ByteBuffer.allocate(length);
-          worked = IOUtils.readFully(channel, dst);
-      }
 
-      // Check
-      if(worked == -1) {
-         throw new IndexOutOfBoundsException("Position " + position + " past 
the end of the file");
+          // Read the contents and check that we could read some data
+          int worked = IOUtils.readFully(channel, dst);
+          if(worked == -1) {
+              throw new IndexOutOfBoundsException("Position " + position + " 
past the end of the file");
+          }
       }
 
-      // Ready it for reading
+      // make it ready for reading
       dst.position(0);
 
       // All done



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org

Reply via email to