Author: tilman
Date: Tue Mar 4 08:12:38 2025
New Revision: 1924162
URL: http://svn.apache.org/viewvc?rev=1924162&view=rev
Log:
PDFBOX-5965: reset EOF if rewind is possible; improve test
Modified:
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStreamTest.java
Modified:
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java?rev=1924162&r1=1924161&r2=1924162&view=diff
==============================================================================
---
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
(original)
+++
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStream.java
Tue Mar 4 08:12:38 2025
@@ -240,6 +240,7 @@ public class NonSeekableRandomAccessRead
bufferBytes[LAST] = -1;
currentBufferPointer = bufferBytes[CURRENT] -
remainingBytesToRewind;
position -= bytes;
+ isEOF = false;
}
else
{
Modified:
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStreamTest.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStreamTest.java?rev=1924162&r1=1924161&r2=1924162&view=diff
==============================================================================
---
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStreamTest.java
(original)
+++
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/NonSeekableRandomAccessReadInputStreamTest.java
Tue Mar 4 08:12:38 2025
@@ -152,6 +152,25 @@ class NonSeekableRandomAccessReadInputSt
assertEquals(7, randomAccessSource.getPosition());
randomAccessSource.rewind(4);
assertEquals(3, randomAccessSource.getPosition());
+
+ // PDFBOX-5965: check that it also works near EOF
+ assertEquals(3, randomAccessSource.read());
+ assertEquals(4, randomAccessSource.read());
+ assertEquals(5, randomAccessSource.read());
+ assertEquals(6, randomAccessSource.read());
+ assertEquals(7, randomAccessSource.read());
+ assertEquals(8, randomAccessSource.read());
+ assertEquals(9, randomAccessSource.read());
+ assertEquals(10, randomAccessSource.read());
+ assertEquals(-1, randomAccessSource.read());
+ assertTrue(randomAccessSource.isEOF());
+ randomAccessSource.rewind(4);
+ assertFalse(randomAccessSource.isEOF());
+ assertEquals(7, randomAccessSource.read());
+ assertEquals(8, randomAccessSource.read());
+ assertEquals(9, randomAccessSource.read());
+ assertEquals(10, randomAccessSource.read());
+ assertEquals(-1, randomAccessSource.read());
}
}