You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2025/10/15 09:39:59 UTC
svn commit: r1929152 - in pdfbox/trunk/io/src: main/java/org/apache/pdfbox/io test/java/org/apache/pdfbox/io
Author: tilman
Date: Wed Oct 15 09:39:58 2025
New Revision: 1929152
Log:
PDFBOX-6083: catch length 0 case + plus test
Modified:
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessRead.java
pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferedFileTest.java
Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessRead.java
==============================================================================
--- pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessRead.java Wed Oct 15 09:28:06 2025 (r1929151)
+++ pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessRead.java Wed Oct 15 09:39:58 2025 (r1929152)
@@ -189,7 +189,7 @@ public interface RandomAccessRead extend
throw new EOFException("Premature end of buffer reached");
}
int bytesReadTotal = 0;
- do
+ while (bytesReadTotal < length)
{
int bytesReadNow = read(b, offset + bytesReadTotal, length - bytesReadTotal);
if (bytesReadNow <= 0)
@@ -198,6 +198,5 @@ public interface RandomAccessRead extend
}
bytesReadTotal += bytesReadNow;
}
- while (bytesReadTotal < length);
}
}
Modified: pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferedFileTest.java
==============================================================================
--- pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferedFileTest.java Wed Oct 15 09:28:06 2025 (r1929151)
+++ pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferedFileTest.java Wed Oct 15 09:39:58 2025 (r1929152)
@@ -296,4 +296,17 @@ class RandomAccessReadBufferedFileTest
Assertions.assertArrayEquals(expectedBytes, b);
}
}
+
+ @Test
+ void testReadFullyNothing() throws IOException, URISyntaxException
+ {
+ try (RandomAccessRead randomAccessSource = new RandomAccessReadBufferedFile(
+ new File(getClass().getResource("RandomAccessReadFile1.txt").toURI())))
+ {
+ assertEquals(0, randomAccessSource.getPosition());
+ byte[] b = new byte[0];
+ randomAccessSource.readFully(b);
+ assertEquals(0, randomAccessSource.getPosition());
+ }
+ }
}