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