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/11/04 11:15:17 UTC

svn commit: r1929509 - pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image

Author: tilman
Date: Tue Nov  4 11:15:17 2025
New Revision: 1929509

Log:
PDFBOX-5660: close input, as suggested by Valery Bokov; closes #310

Modified:
   pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObjectTest.java

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObjectTest.java
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObjectTest.java	Tue Nov  4 11:15:12 2025	(r1929508)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObjectTest.java	Tue Nov  4 11:15:17 2025	(r1929509)
@@ -147,12 +147,13 @@ class PDImageXObjectTest
     private void testCompareCreatedFileByExtensionWithCreatedByLosslessFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        try (PDDocument doc = new PDDocument();
+             InputStream is = PDImageXObjectTest.class.getResourceAsStream(filename))
         {
             File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
             PDImageXObject image = PDImageXObject.createFromFileByExtension(file, doc);
             
-            BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
+            BufferedImage bim = ImageIO.read(is);
             PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
             
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
@@ -178,12 +179,13 @@ class PDImageXObjectTest
     private void testCompareCreatedFileByExtensionWithCreatedByJPEGFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+             InputStream is = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
             PDImageXObject image = PDImageXObject.createFromFileByExtension(file, doc);
             
-            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
+            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is);
             
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
@@ -193,12 +195,13 @@ class PDImageXObjectTest
     private void testCompareCreatedFileWithCreatedByLosslessFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        try (PDDocument doc = new PDDocument();
+             InputStream is = PDImageXObjectTest.class.getResourceAsStream(filename))
         {
             File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
             PDImageXObject image = PDImageXObject.createFromFile(file.getAbsolutePath(), doc);
             
-            BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
+            BufferedImage bim = ImageIO.read(is);
             PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
             
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
@@ -224,12 +227,13 @@ class PDImageXObjectTest
     private void testCompareCreatedFileWithCreatedByJPEGFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+             InputStream is = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
             PDImageXObject image = PDImageXObject.createFromFile(file.getAbsolutePath(), doc);
             
-            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
+            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is);
             
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
@@ -239,12 +243,13 @@ class PDImageXObjectTest
     private void testCompareCreatedByContentWithCreatedByLosslessFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        try (PDDocument doc = new PDDocument();
+             InputStream is = PDImageXObjectTest.class.getResourceAsStream(filename))
         {
             File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
             PDImageXObject image = PDImageXObject.createFromFileByContent(file, doc);
             
-            BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
+            BufferedImage bim = ImageIO.read(is);
             PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
             
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
@@ -270,13 +275,14 @@ class PDImageXObjectTest
     private void testCompareCreatedByContentWithCreatedByJPEGFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+             InputStream is = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
             PDImageXObject image = PDImageXObject.createFromFileByContent(file, doc);
-            
-            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
-            
+
+            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is);
+
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
         }
@@ -288,16 +294,17 @@ class PDImageXObjectTest
     private void testCompareCreatedFromByteArrayWithCreatedByLosslessFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+            InputStream is1 = PDImageXObjectTest.class.getResourceAsStream(filename);
+            InputStream is2 = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
-            InputStream in = new FileInputStream(file);
-            byte[] byteArray = in.readAllBytes();
+            byte[] byteArray = is2.readAllBytes();
             PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, null);
-            
-            BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
+
+            BufferedImage bim = ImageIO.read(is1);
             PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
-            
+
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
         }
@@ -306,15 +313,15 @@ class PDImageXObjectTest
     private void testCompareCreatedFromByteArrayWithCreatedByCCITTFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+            InputStream is = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
-            InputStream in = new FileInputStream(file);
-            byte[] byteArray = in.readAllBytes();
+            byte[] byteArray = is.readAllBytes();
             PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, null);
-            
+
             PDImageXObject expectedImage = CCITTFactory.createFromFile(doc, file);
-            
+
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
         }
@@ -323,15 +330,16 @@ class PDImageXObjectTest
     private void testCompareCreatedFromByteArrayWithCreatedByJPEGFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+            InputStream is1 = new FileInputStream(file);
+            InputStream is2 = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
-            InputStream in = new FileInputStream(file);
-            byte[] byteArray = in.readAllBytes();
+            byte[] byteArray = is1.readAllBytes();
             PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, null);
-            
-            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
-            
+
+            PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is2);
+
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
         }
@@ -340,18 +348,18 @@ class PDImageXObjectTest
     private void testCompareCreatedFromByteArrayWithCreatedByCustomFactory(String filename)
             throws IOException, URISyntaxException
     {
-        try (PDDocument doc = new PDDocument())
+        File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
+        try (PDDocument doc = new PDDocument();
+            InputStream is = new FileInputStream(file))
         {
-            File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
-            InputStream in = new FileInputStream(file);
-            byte[] byteArray = in.readAllBytes();
-            
+            byte[] byteArray = is.readAllBytes();
+
             CustomFactory customFactory = this::alphaFlattenedJPEGFactory;
-            
+
             PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, filename, customFactory);
-            
+
             PDImageXObject expectedImage = alphaFlattenedJPEGFactory(doc, byteArray);
-            
+
             assertEquals(expectedImage.getSuffix(), image.getSuffix());
             checkIdentARGB(image.getImage(), expectedImage.getImage());
         }