You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/09/20 12:40:09 UTC
svn commit: r1881868 - in /pdfbox/trunk/pdfbox/src:
main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java
Author: lehmi
Date: Sun Sep 20 12:40:09 2020
New Revision: 1881868
URL: http://svn.apache.org/viewvc?rev=1881868&view=rev
Log:
PDFBOX-4836: don't rely on InputStream.available() for an initial check if any data is available
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java?rev=1881868&r1=1881867&r2=1881868&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java Sun Sep 20 12:40:09 2020
@@ -61,9 +61,9 @@ public class RandomAccessReadBuffer impl
private RandomAccessReadBuffer(int definedChunkSize)
{
// starting with one chunk
- bufferList = new ArrayList<>();
chunkSize = definedChunkSize;
currentBuffer = ByteBuffer.allocate(chunkSize);
+ bufferList = new ArrayList<>();
bufferList.add(currentBuffer);
}
@@ -75,10 +75,10 @@ public class RandomAccessReadBuffer impl
public RandomAccessReadBuffer(byte[] input)
{
// this is a special case. Wrap the given byte array to one ByteBuffer.
- bufferList = new ArrayList<>(1);
chunkSize = input.length;
size = chunkSize;
currentBuffer = ByteBuffer.wrap(input);
+ bufferList = new ArrayList<>(1);
bufferList.add(currentBuffer);
}
@@ -92,7 +92,7 @@ public class RandomAccessReadBuffer impl
{
this();
int bytesRead = 0;
- while (input.available() > 0)
+ while (true)
{
int remainingBytes = chunkSize;
int offset = 0;
@@ -110,6 +110,7 @@ public class RandomAccessReadBuffer impl
else
{
currentBuffer.limit(offset);
+ break;
}
}
seek(0);
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java?rev=1881868&r1=1881867&r2=1881868&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/encryption/TestPublicKeyEncryption.java Sun Sep 20 12:40:09 2020
@@ -29,13 +29,11 @@ import java.util.Collection;
import javax.crypto.Cipher;
import org.apache.pdfbox.Loader;
-import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
import org.apache.pdfbox.pdmodel.encryption.PublicKeyProtectionPolicy;
import org.apache.pdfbox.pdmodel.encryption.PublicKeyRecipient;
-import org.apache.pdfbox.pdmodel.encryption.PublicKeySecurityHandler;
import org.apache.pdfbox.text.PDFTextStripper;
import org.junit.After;
@@ -333,8 +331,7 @@ public class TestPublicKeyEncryption
public void testReadPubkeyEncryptedAES128() throws IOException
{
URL url = new URL("https://issues.apache.org/jira/secure/attachment/13011682/B2-Adobe-128-aes-sec.pdf");
- byte[] ba = IOUtils.toByteArray(url.openStream()); // because of bug in PDFBOX-4836
- try (PDDocument doc = Loader.loadPDF(ba,
+ try (PDDocument doc = Loader.loadPDF(url.openStream(),
"w!z%C*F-JaNdRgUk",
TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-4421-keystore.pfx"),
"testnutzer"))
@@ -358,8 +355,7 @@ public class TestPublicKeyEncryption
public void testReadPubkeyEncryptedAES256() throws IOException
{
URL url = new URL("https://issues.apache.org/jira/secure/attachment/13011752/B2-AES-256-secured.pdf");
- byte[] ba = IOUtils.toByteArray(url.openStream()); // because of bug in PDFBOX-4836
- try (PDDocument doc = Loader.loadPDF(ba,
+ try (PDDocument doc = Loader.loadPDF(url.openStream(),
"w!z%C*F-JaNdRgUk",
TestPublicKeyEncryption.class.getResourceAsStream("PDFBOX-4421-keystore.pfx"),
"testnutzer"))