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());
         }

Reply via email to