Skip to content

Commit ab3a021

Browse files
committed
PDFBOX-5660: close input, as suggested by Valery Bokov; closes #310
git-svn-id: https://svn.apache.org/repos/asf/pdfbox/trunk@1929509 13f79535-47bb-0310-9956-ffa450edef68
1 parent d3bf7a4 commit ab3a021

File tree

1 file changed

+53
-45
lines changed

1 file changed

+53
-45
lines changed

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

Lines changed: 53 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -147,12 +147,13 @@ void testCreateFromByteArrayWithCustomFactory() throws IOException, URISyntaxExc
147147
private void testCompareCreatedFileByExtensionWithCreatedByLosslessFactory(String filename)
148148
throws IOException, URISyntaxException
149149
{
150-
try (PDDocument doc = new PDDocument())
150+
try (PDDocument doc = new PDDocument();
151+
InputStream is = PDImageXObjectTest.class.getResourceAsStream(filename))
151152
{
152153
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
153154
PDImageXObject image = PDImageXObject.createFromFileByExtension(file, doc);
154155

155-
BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
156+
BufferedImage bim = ImageIO.read(is);
156157
PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
157158

158159
assertEquals(expectedImage.getSuffix(), image.getSuffix());
@@ -178,12 +179,13 @@ private void testCompareCreatedFileByExtensionWithCreatedByCCITTFactory(String f
178179
private void testCompareCreatedFileByExtensionWithCreatedByJPEGFactory(String filename)
179180
throws IOException, URISyntaxException
180181
{
181-
try (PDDocument doc = new PDDocument())
182+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
183+
try (PDDocument doc = new PDDocument();
184+
InputStream is = new FileInputStream(file))
182185
{
183-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
184186
PDImageXObject image = PDImageXObject.createFromFileByExtension(file, doc);
185187

186-
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
188+
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is);
187189

188190
assertEquals(expectedImage.getSuffix(), image.getSuffix());
189191
checkIdentARGB(image.getImage(), expectedImage.getImage());
@@ -193,12 +195,13 @@ private void testCompareCreatedFileByExtensionWithCreatedByJPEGFactory(String fi
193195
private void testCompareCreatedFileWithCreatedByLosslessFactory(String filename)
194196
throws IOException, URISyntaxException
195197
{
196-
try (PDDocument doc = new PDDocument())
198+
try (PDDocument doc = new PDDocument();
199+
InputStream is = PDImageXObjectTest.class.getResourceAsStream(filename))
197200
{
198201
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
199202
PDImageXObject image = PDImageXObject.createFromFile(file.getAbsolutePath(), doc);
200203

201-
BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
204+
BufferedImage bim = ImageIO.read(is);
202205
PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
203206

204207
assertEquals(expectedImage.getSuffix(), image.getSuffix());
@@ -224,12 +227,13 @@ private void testCompareCreatedFileWithCreatedByCCITTFactory(String filename)
224227
private void testCompareCreatedFileWithCreatedByJPEGFactory(String filename)
225228
throws IOException, URISyntaxException
226229
{
227-
try (PDDocument doc = new PDDocument())
230+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
231+
try (PDDocument doc = new PDDocument();
232+
InputStream is = new FileInputStream(file))
228233
{
229-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
230234
PDImageXObject image = PDImageXObject.createFromFile(file.getAbsolutePath(), doc);
231235

232-
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
236+
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is);
233237

234238
assertEquals(expectedImage.getSuffix(), image.getSuffix());
235239
checkIdentARGB(image.getImage(), expectedImage.getImage());
@@ -239,12 +243,13 @@ private void testCompareCreatedFileWithCreatedByJPEGFactory(String filename)
239243
private void testCompareCreatedByContentWithCreatedByLosslessFactory(String filename)
240244
throws IOException, URISyntaxException
241245
{
242-
try (PDDocument doc = new PDDocument())
246+
try (PDDocument doc = new PDDocument();
247+
InputStream is = PDImageXObjectTest.class.getResourceAsStream(filename))
243248
{
244249
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
245250
PDImageXObject image = PDImageXObject.createFromFileByContent(file, doc);
246251

247-
BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
252+
BufferedImage bim = ImageIO.read(is);
248253
PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
249254

250255
assertEquals(expectedImage.getSuffix(), image.getSuffix());
@@ -270,13 +275,14 @@ private void testCompareCreateByContentWithCreatedByCCITTFactory(String filename
270275
private void testCompareCreatedByContentWithCreatedByJPEGFactory(String filename)
271276
throws IOException, URISyntaxException
272277
{
273-
try (PDDocument doc = new PDDocument())
278+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
279+
try (PDDocument doc = new PDDocument();
280+
InputStream is = new FileInputStream(file))
274281
{
275-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
276282
PDImageXObject image = PDImageXObject.createFromFileByContent(file, doc);
277-
278-
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
279-
283+
284+
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is);
285+
280286
assertEquals(expectedImage.getSuffix(), image.getSuffix());
281287
checkIdentARGB(image.getImage(), expectedImage.getImage());
282288
}
@@ -288,16 +294,17 @@ private void testCompareCreatedByContentWithCreatedByJPEGFactory(String filename
288294
private void testCompareCreatedFromByteArrayWithCreatedByLosslessFactory(String filename)
289295
throws IOException, URISyntaxException
290296
{
291-
try (PDDocument doc = new PDDocument())
297+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
298+
try (PDDocument doc = new PDDocument();
299+
InputStream is1 = PDImageXObjectTest.class.getResourceAsStream(filename);
300+
InputStream is2 = new FileInputStream(file))
292301
{
293-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
294-
InputStream in = new FileInputStream(file);
295-
byte[] byteArray = in.readAllBytes();
302+
byte[] byteArray = is2.readAllBytes();
296303
PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, null);
297-
298-
BufferedImage bim = ImageIO.read(PDImageXObjectTest.class.getResourceAsStream(filename));
304+
305+
BufferedImage bim = ImageIO.read(is1);
299306
PDImageXObject expectedImage = LosslessFactory.createFromImage(doc, bim);
300-
307+
301308
assertEquals(expectedImage.getSuffix(), image.getSuffix());
302309
checkIdentARGB(image.getImage(), expectedImage.getImage());
303310
}
@@ -306,15 +313,15 @@ private void testCompareCreatedFromByteArrayWithCreatedByLosslessFactory(String
306313
private void testCompareCreatedFromByteArrayWithCreatedByCCITTFactory(String filename)
307314
throws IOException, URISyntaxException
308315
{
309-
try (PDDocument doc = new PDDocument())
316+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
317+
try (PDDocument doc = new PDDocument();
318+
InputStream is = new FileInputStream(file))
310319
{
311-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
312-
InputStream in = new FileInputStream(file);
313-
byte[] byteArray = in.readAllBytes();
320+
byte[] byteArray = is.readAllBytes();
314321
PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, null);
315-
322+
316323
PDImageXObject expectedImage = CCITTFactory.createFromFile(doc, file);
317-
324+
318325
assertEquals(expectedImage.getSuffix(), image.getSuffix());
319326
checkIdentARGB(image.getImage(), expectedImage.getImage());
320327
}
@@ -323,15 +330,16 @@ private void testCompareCreatedFromByteArrayWithCreatedByCCITTFactory(String fil
323330
private void testCompareCreatedFromByteArrayWithCreatedByJPEGFactory(String filename)
324331
throws IOException, URISyntaxException
325332
{
326-
try (PDDocument doc = new PDDocument())
333+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
334+
try (PDDocument doc = new PDDocument();
335+
InputStream is1 = new FileInputStream(file);
336+
InputStream is2 = new FileInputStream(file))
327337
{
328-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
329-
InputStream in = new FileInputStream(file);
330-
byte[] byteArray = in.readAllBytes();
338+
byte[] byteArray = is1.readAllBytes();
331339
PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, null);
332-
333-
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, new FileInputStream(file));
334-
340+
341+
PDImageXObject expectedImage = JPEGFactory.createFromStream(doc, is2);
342+
335343
assertEquals(expectedImage.getSuffix(), image.getSuffix());
336344
checkIdentARGB(image.getImage(), expectedImage.getImage());
337345
}
@@ -340,18 +348,18 @@ private void testCompareCreatedFromByteArrayWithCreatedByJPEGFactory(String file
340348
private void testCompareCreatedFromByteArrayWithCreatedByCustomFactory(String filename)
341349
throws IOException, URISyntaxException
342350
{
343-
try (PDDocument doc = new PDDocument())
351+
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
352+
try (PDDocument doc = new PDDocument();
353+
InputStream is = new FileInputStream(file))
344354
{
345-
File file = new File(PDImageXObjectTest.class.getResource(filename).toURI());
346-
InputStream in = new FileInputStream(file);
347-
byte[] byteArray = in.readAllBytes();
348-
355+
byte[] byteArray = is.readAllBytes();
356+
349357
CustomFactory customFactory = this::alphaFlattenedJPEGFactory;
350-
358+
351359
PDImageXObject image = PDImageXObject.createFromByteArray(doc, byteArray, filename, customFactory);
352-
360+
353361
PDImageXObject expectedImage = alphaFlattenedJPEGFactory(doc, byteArray);
354-
362+
355363
assertEquals(expectedImage.getSuffix(), image.getSuffix());
356364
checkIdentARGB(image.getImage(), expectedImage.getImage());
357365
}

0 commit comments

Comments
 (0)