Skip to content

Commit 62a3c98

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

File tree

1 file changed

+140
-129
lines changed

1 file changed

+140
-129
lines changed

xmpbox/src/test/java/org/apache/xmpbox/parser/DeserializationTest.java

Lines changed: 140 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -87,98 +87,108 @@ static void finishAll()
8787
}
8888

8989
@Test
90-
void testStructuredRecursive() throws XmpParsingException, TransformerException, NoSuchAlgorithmException
90+
void testStructuredRecursive() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, IOException
9191
{
92-
InputStream fis = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/structured_recursive.xml");
93-
XMPMetadata metadata = xdb.parse(fis);
94-
checkTransform(metadata, "50429052370059903229869639943824137435756655804864824611365505219590816799783");
92+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/structured_recursive.xml"))
93+
{
94+
XMPMetadata metadata = xdb.parse(is);
95+
checkTransform(metadata, "50429052370059903229869639943824137435756655804864824611365505219590816799783");
96+
}
9597
}
9698

9799
@Test
98-
void testEmptyLi() throws XmpParsingException, TransformerException, NoSuchAlgorithmException
100+
void testEmptyLi() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, IOException
99101
{
100-
InputStream fis = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/empty_list.xml");
101-
XMPMetadata metadata = xdb.parse(fis);
102-
checkTransform(metadata, "92757984740574362800045336947395134346147179161385043989715484359442690118913");
102+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/empty_list.xml"))
103+
{
104+
XMPMetadata metadata = xdb.parse(is);
105+
checkTransform(metadata, "92757984740574362800045336947395134346147179161385043989715484359442690118913");
106+
}
103107
}
104108

105109
@Test
106-
void testEmptyLi2() throws XmpParsingException, TransformerException, NoSuchAlgorithmException
110+
void testEmptyLi2() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, IOException
107111
{
108-
InputStream fis = DomXmpParser.class.getResourceAsStream("/validxmp/emptyli.xml");
109-
XMPMetadata metadata = xdb.parse(fis);
110-
DublinCoreSchema dc = metadata.getDublinCoreSchema();
111-
dc.getCreatorsProperty();
112-
checkTransform(metadata, "84846877440303452108560435796840772468446174326989274262473618453524301429629");
112+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/validxmp/emptyli.xml"))
113+
{
114+
XMPMetadata metadata = xdb.parse(is);
115+
DublinCoreSchema dc = metadata.getDublinCoreSchema();
116+
dc.getCreatorsProperty();
117+
checkTransform(metadata, "84846877440303452108560435796840772468446174326989274262473618453524301429629");
118+
}
113119
}
114120

115121
@Test
116-
void testGetTitle() throws XmpParsingException, BadFieldValueException
122+
void testGetTitle() throws XmpParsingException, BadFieldValueException, IOException
117123
{
118-
InputStream fis = DomXmpParser.class.getResourceAsStream("/validxmp/emptyli.xml");
119-
XMPMetadata metadata = xdb.parse(fis);
120-
DublinCoreSchema dc = metadata.getDublinCoreSchema();
121-
String s = dc.getTitle(null);
122-
assertEquals("title value", s);
124+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/validxmp/emptyli.xml"))
125+
{
126+
XMPMetadata metadata = xdb.parse(is);
127+
DublinCoreSchema dc = metadata.getDublinCoreSchema();
128+
String s = dc.getTitle(null);
129+
assertEquals("title value", s);
130+
}
123131
}
124132

125133
@Test
126-
void testAltBagSeq() throws XmpParsingException, TransformerException, NoSuchAlgorithmException
134+
void testAltBagSeq() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, IOException
127135
{
128-
InputStream fis = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/AltBagSeqTest.xml");
129-
XMPMetadata metadata=xdb.parse(fis);
130-
checkTransform(metadata, "16805992283807186369849610414335227396239089071611806706387795179375897398118");
136+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/AltBagSeqTest.xml"))
137+
{
138+
XMPMetadata metadata = xdb.parse(is);
139+
checkTransform(metadata, "16805992283807186369849610414335227396239089071611806706387795179375897398118");
140+
}
131141
}
132142

133143
@Test
134144
void testIsartorStyleWithThumbs()
135-
throws XmpParsingException, IOException, BadFieldValueException, TransformerException, NoSuchAlgorithmException
145+
throws XmpParsingException, BadFieldValueException, TransformerException, NoSuchAlgorithmException, IOException
136146
{
137-
InputStream fis = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/ThumbisartorStyle.xml");
138-
139-
XMPMetadata metadata = xdb.parse(fis);
140-
141-
// <xmpMM:DocumentID>
142-
assertEquals("uuid:09C78666-2F91-3A9C-92AF-3691A6D594F7", metadata.getXMPMediaManagementSchema()
143-
.getDocumentID());
144-
145-
// <xmp:CreateDate>
146-
// <xmp:ModifyDate>
147-
// <xmp:MetadataDate>
148-
assertEquals(DateConverter.toCalendar("2008-01-18T16:59:54+01:00"), metadata.getXMPBasicSchema()
149-
.getCreateDate());
150-
assertEquals(DateConverter.toCalendar("2008-01-18T16:59:54+01:00"), metadata.getXMPBasicSchema()
151-
.getModifyDate());
152-
assertEquals(DateConverter.toCalendar("2008-01-18T16:59:54+01:00"), metadata.getXMPBasicSchema()
153-
.getMetadataDate());
154-
155-
// THUMBNAILS TEST
156-
List<ThumbnailType> thumbs = metadata.getXMPBasicSchema().getThumbnailsProperty();
157-
assertNotNull(thumbs);
158-
assertEquals(2, thumbs.size());
159-
160-
ThumbnailType thumb = thumbs.get(0);
161-
assertEquals(Integer.valueOf(162), thumb.getHeight());
162-
assertEquals(Integer.valueOf(216), thumb.getWidth());
163-
assertEquals("JPEG", thumb.getFormat());
164-
assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage());
165-
166-
thumb = thumbs.get(1);
167-
assertEquals(Integer.valueOf(162), thumb.getHeight());
168-
assertEquals(Integer.valueOf(216), thumb.getWidth());
169-
assertEquals("JPEG", thumb.getFormat());
170-
assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage());
171-
172-
checkTransform(metadata, "29120813843205587378639665706339183422557956085575883885304382528664692315203");
147+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/org/apache/xmpbox/parser/ThumbisartorStyle.xml"))
148+
{
149+
XMPMetadata metadata = xdb.parse(is);
150+
151+
// <xmpMM:DocumentID>
152+
assertEquals("uuid:09C78666-2F91-3A9C-92AF-3691A6D594F7", metadata.getXMPMediaManagementSchema()
153+
.getDocumentID());
154+
155+
// <xmp:CreateDate>
156+
// <xmp:ModifyDate>
157+
// <xmp:MetadataDate>
158+
assertEquals(DateConverter.toCalendar("2008-01-18T16:59:54+01:00"), metadata.getXMPBasicSchema()
159+
.getCreateDate());
160+
assertEquals(DateConverter.toCalendar("2008-01-18T16:59:54+01:00"), metadata.getXMPBasicSchema()
161+
.getModifyDate());
162+
assertEquals(DateConverter.toCalendar("2008-01-18T16:59:54+01:00"), metadata.getXMPBasicSchema()
163+
.getMetadataDate());
164+
165+
// THUMBNAILS TEST
166+
List<ThumbnailType> thumbs = metadata.getXMPBasicSchema().getThumbnailsProperty();
167+
assertNotNull(thumbs);
168+
assertEquals(2, thumbs.size());
169+
170+
ThumbnailType thumb = thumbs.get(0);
171+
assertEquals(Integer.valueOf(162), thumb.getHeight());
172+
assertEquals(Integer.valueOf(216), thumb.getWidth());
173+
assertEquals("JPEG", thumb.getFormat());
174+
assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage());
175+
176+
thumb = thumbs.get(1);
177+
assertEquals(Integer.valueOf(162), thumb.getHeight());
178+
assertEquals(Integer.valueOf(216), thumb.getWidth());
179+
assertEquals("JPEG", thumb.getFormat());
180+
assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage());
181+
182+
checkTransform(metadata, "29120813843205587378639665706339183422557956085575883885304382528664692315203");
183+
}
173184
}
174185

175186
@Test
176-
void testWithNoXPacketStart() throws XmpParsingException
187+
void testWithNoXPacketStart() throws IOException
177188
{
178-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/noxpacket.xml");
179-
try
189+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/noxpacket.xml"))
180190
{
181-
xdb.parse(fis);
191+
xdb.parse(is);
182192
fail("Should fail during parse");
183193
}
184194
catch (XmpParsingException e)
@@ -188,42 +198,42 @@ void testWithNoXPacketStart() throws XmpParsingException
188198
}
189199

190200
@Test
191-
void testWithNoXPacketEnd() throws XmpParsingException
201+
void testWithNoXPacketEnd() throws IOException
192202
{
193-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/noxpacketend.xml");
194-
try
203+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/noxpacketend.xml"))
195204
{
196-
xdb.parse(fis);
197-
fail("Should fail during parse");
198-
}
199-
catch (XmpParsingException e)
200-
{
201-
assertEquals(ErrorType.XpacketBadEnd, e.getErrorType());
205+
try
206+
{
207+
xdb.parse(is);
208+
fail("Should fail during parse");
209+
}
210+
catch (XmpParsingException e)
211+
{
212+
assertEquals(ErrorType.XpacketBadEnd, e.getErrorType());
213+
}
202214
}
203215
}
204216

205217
@Test
206-
void testWithNoRDFElement() throws XmpParsingException
218+
void testWithNoRDFElement() throws XmpParsingException, IOException
207219
{
208-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/noroot.xml");
209-
try
220+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/noroot.xml"))
210221
{
211-
xdb.parse(fis);
222+
xdb.parse(is);
212223
fail("Should fail during parse");
213224
}
214-
catch (XmpParsingException e)
225+
catch(XmpParsingException e)
215226
{
216227
assertEquals(ErrorType.Format, e.getErrorType());
217228
}
218229
}
219230

220231
@Test
221-
void testWithTwoRDFElement() throws XmpParsingException
232+
void testWithTwoRDFElement() throws XmpParsingException, IOException
222233
{
223-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/tworoot.xml");
224-
try
234+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/tworoot.xml"))
225235
{
226-
xdb.parse(fis);
236+
xdb.parse(is);
227237
fail("Should fail during parse");
228238
}
229239
catch (XmpParsingException e)
@@ -233,12 +243,11 @@ void testWithTwoRDFElement() throws XmpParsingException
233243
}
234244

235245
@Test
236-
void testWithInvalidRDFElementPrefix()
246+
void testWithInvalidRDFElementPrefix() throws IOException
237247
{
238-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/invalidroot2.xml");
239-
try
248+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/invalidroot2.xml"))
240249
{
241-
xdb.parse(fis);
250+
xdb.parse(is);
242251
fail("Should fail during parse");
243252
}
244253
catch (XmpParsingException e)
@@ -248,12 +257,11 @@ void testWithInvalidRDFElementPrefix()
248257
}
249258

250259
@Test
251-
void testWithRDFRootAsText()
260+
void testWithRDFRootAsText() throws IOException
252261
{
253-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/invalidroot.xml");
254-
try
262+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/invalidroot.xml"))
255263
{
256-
xdb.parse(fis);
264+
xdb.parse(is);
257265
fail("Should fail during parse");
258266
}
259267
catch (XmpParsingException e)
@@ -263,12 +271,11 @@ void testWithRDFRootAsText()
263271
}
264272

265273
@Test
266-
void testUndefinedSchema()
274+
void testUndefinedSchema() throws IOException
267275
{
268-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/undefinedschema.xml");
269-
try
276+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/undefinedschema.xml"))
270277
{
271-
xdb.parse(fis);
278+
xdb.parse(is);
272279
fail("Should fail during parse");
273280
}
274281
catch (XmpParsingException e)
@@ -278,12 +285,11 @@ void testUndefinedSchema()
278285
}
279286

280287
@Test
281-
void testUndefinedPropertyWithDefinedSchema()
288+
void testUndefinedPropertyWithDefinedSchema() throws IOException
282289
{
283-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/undefinedpropertyindefinedschema.xml");
284-
try
290+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/undefinedpropertyindefinedschema.xml"))
285291
{
286-
xdb.parse(fis);
292+
xdb.parse(is);
287293
fail("Should fail during parse");
288294
}
289295
catch (XmpParsingException e)
@@ -293,12 +299,11 @@ void testUndefinedPropertyWithDefinedSchema()
293299
}
294300

295301
@Test
296-
void testUndefinedStructuredWithDefinedSchema()
302+
void testUndefinedStructuredWithDefinedSchema() throws IOException
297303
{
298-
InputStream fis = DomXmpParser.class.getResourceAsStream("/invalidxmp/undefinedstructuredindefinedschema.xml");
299-
try
304+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/invalidxmp/undefinedstructuredindefinedschema.xml"))
300305
{
301-
xdb.parse(fis);
306+
xdb.parse(is);
302307
fail("Should fail during parse");
303308
}
304309
catch (XmpParsingException e)
@@ -308,48 +313,54 @@ void testUndefinedStructuredWithDefinedSchema()
308313
}
309314

310315
@Test
311-
void testRdfAboutFound() throws XmpParsingException
316+
void testRdfAboutFound() throws XmpParsingException, IOException
312317
{
313-
InputStream fis = DomXmpParser.class.getResourceAsStream("/validxmp/emptyli.xml");
314-
XMPMetadata metadata = xdb.parse(fis);
315-
List<XMPSchema> schemas = metadata.getAllSchemas();
316-
for (XMPSchema xmpSchema : schemas)
318+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/validxmp/emptyli.xml"))
317319
{
318-
assertNotNull(xmpSchema.getAboutAttribute());
320+
XMPMetadata metadata = xdb.parse(is);
321+
List<XMPSchema> schemas = metadata.getAllSchemas();
322+
for (XMPSchema xmpSchema : schemas)
323+
{
324+
assertNotNull(xmpSchema.getAboutAttribute());
325+
}
319326
}
320327
}
321328

322329
@Test
323-
void testWihtAttributesAsProperties() throws XmpParsingException, TransformerException, NoSuchAlgorithmException
330+
void testWihtAttributesAsProperties() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, IOException
324331
{
325-
InputStream fis = DomXmpParser.class.getResourceAsStream("/validxmp/attr_as_props.xml");
326-
XMPMetadata metadata = xdb.parse(fis);
332+
try (InputStream is = DomXmpParser.class.getResourceAsStream("/validxmp/attr_as_props.xml"))
333+
{
334+
XMPMetadata metadata = xdb.parse(is);
327335

328-
AdobePDFSchema pdf = metadata.getAdobePDFSchema();
329-
assertEquals("GPL Ghostscript 8.64", pdf.getProducer());
336+
AdobePDFSchema pdf = metadata.getAdobePDFSchema();
337+
assertEquals("GPL Ghostscript 8.64", pdf.getProducer());
330338

331-
DublinCoreSchema dc = metadata.getDublinCoreSchema();
332-
assertEquals("application/pdf", dc.getFormat());
339+
DublinCoreSchema dc = metadata.getDublinCoreSchema();
340+
assertEquals("application/pdf", dc.getFormat());
333341

334-
XMPBasicSchema basic = metadata.getXMPBasicSchema();
335-
assertNotNull(basic.getCreateDate());
336-
337-
checkTransform(metadata, "91466370449938102905842936306160100538543510664071400903097987792216034311743");
342+
XMPBasicSchema basic = metadata.getXMPBasicSchema();
343+
assertNotNull(basic.getCreateDate());
344+
345+
checkTransform(metadata, "91466370449938102905842936306160100538543510664071400903097987792216034311743");
346+
}
338347
}
339348

340349
@Test
341-
void testSpaceTextValues() throws XmpParsingException, TransformerException, NoSuchAlgorithmException
350+
void testSpaceTextValues() throws XmpParsingException, TransformerException, NoSuchAlgorithmException, IOException
342351
{
343352
// check values with spaces at start or end
344353
// in this case, the value should not be trimmed
345-
InputStream is = DomXmpParser.class.getResourceAsStream("/validxmp/only_space_fields.xmp");
346-
XMPMetadata metadata = xdb.parse(is);
347-
// check producer
348-
assertEquals(" ", metadata.getAdobePDFSchema().getProducer());
349-
// check creator tool
350-
assertEquals("Canon ",metadata.getXMPBasicSchema().getCreatorTool());
351-
352-
checkTransform(metadata, "65475542891943378255730260794798768587695617138297196920293698476028940113080");
354+
try(InputStream is = DomXmpParser.class.getResourceAsStream("/validxmp/only_space_fields.xmp"))
355+
{
356+
XMPMetadata metadata = xdb.parse(is);
357+
// check producer
358+
assertEquals(" ", metadata.getAdobePDFSchema().getProducer());
359+
// check creator tool
360+
assertEquals("Canon ", metadata.getXMPBasicSchema().getCreatorTool());
361+
362+
checkTransform(metadata, "65475542891943378255730260794798768587695617138297196920293698476028940113080");
363+
}
353364
}
354365

355366
@Test

0 commit comments

Comments
 (0)