Skip to content

Commit da93d3a

Browse files
committed
Ensure stream is closed
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/io/trunk@1441282 13f79535-47bb-0310-9956-ffa450edef68
1 parent 88c4d3e commit da93d3a

7 files changed

Lines changed: 40 additions & 13 deletions

src/test/java/org/apache/commons/io/input/ClosedInputStreamTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ public class ClosedInputStreamTest extends TestCase {
2626
/**
2727
* Test the <code>read()</code> method.
2828
*/
29-
public void testRead() {
30-
assertEquals("read()", -1, new ClosedInputStream().read());
29+
public void testRead() throws Exception {
30+
final ClosedInputStream cis = new ClosedInputStream();
31+
assertEquals("read()", -1, cis.read());
32+
cis.close();
3133
}
3234

3335
}

src/test/java/org/apache/commons/io/input/ReversedLinesFileReaderTestParamBlockSize.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,13 @@ public void testIsoFileManyWindowsBreaksSmallBlockSize2VerifyBlockSpanningNewLin
161161
@Test(expected=UnsupportedEncodingException.class)
162162
public void testUnsupportedEncodingUTF16() throws URISyntaxException, IOException {
163163
final File testFileEmpty = new File(this.getClass().getResource("/test-file-empty.bin").toURI());
164-
new ReversedLinesFileReader(testFileEmpty, testParamBlockSize, "UTF-16");
164+
new ReversedLinesFileReader(testFileEmpty, testParamBlockSize, "UTF-16").close();
165165
}
166166

167167
@Test(expected=UnsupportedEncodingException.class)
168168
public void testUnsupportedEncodingBig5() throws URISyntaxException, IOException {
169169
final File testFileEncodingBig5 = new File(this.getClass().getResource("/test-file-empty.bin").toURI());
170-
new ReversedLinesFileReader(testFileEncodingBig5, testParamBlockSize, "Big5");
170+
new ReversedLinesFileReader(testFileEncodingBig5, testParamBlockSize, "Big5").close();
171171
}
172172

173173
private void assertFileWithShrinkingTestLines(final ReversedLinesFileReader reversedLinesFileReader) throws IOException {

src/test/java/org/apache/commons/io/input/ReversedLinesFileReaderTestSimple.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ public void testFileSizeIsExactMultipleOfBlockSize() throws URISyntaxException,
5353
@Test(expected=UnsupportedEncodingException.class)
5454
public void testUnsupportedEncodingUTF16() throws URISyntaxException, IOException {
5555
final File testFileEmpty = new File(this.getClass().getResource("/test-file-empty.bin").toURI());
56-
new ReversedLinesFileReader(testFileEmpty, 4096, "UTF-16");
56+
new ReversedLinesFileReader(testFileEmpty, 4096, "UTF-16").close();
5757
}
5858

5959
@Test(expected=UnsupportedEncodingException.class)
6060
public void testUnsupportedEncodingBig5() throws URISyntaxException, IOException {
6161
final File testFileEncodingBig5 = new File(this.getClass().getResource("/test-file-empty.bin").toURI());
62-
new ReversedLinesFileReader(testFileEncodingBig5, 4096, "Big5");
62+
new ReversedLinesFileReader(testFileEncodingBig5, 4096, "Big5").close();
6363
}
6464

6565

src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,27 @@ protected void _testRawNoBomValid(final String encoding) throws Exception {
4646
InputStream is = getXmlStream("no-bom", XML1, encoding, encoding);
4747
XmlStreamReader xmlReader = new XmlStreamReader(is, false);
4848
assertEquals(xmlReader.getEncoding(), "UTF-8");
49+
xmlReader.close();
4950

5051
is = getXmlStream("no-bom", XML2, encoding, encoding);
5152
xmlReader = new XmlStreamReader(is);
5253
assertEquals(xmlReader.getEncoding(), "UTF-8");
54+
xmlReader.close();
5355

5456
is = getXmlStream("no-bom", XML3, encoding, encoding);
5557
xmlReader = new XmlStreamReader(is);
5658
assertEquals(xmlReader.getEncoding(), encoding);
59+
xmlReader.close();
5760

5861
is = getXmlStream("no-bom", XML4, encoding, encoding);
5962
xmlReader = new XmlStreamReader(is);
6063
assertEquals(xmlReader.getEncoding(), encoding);
64+
xmlReader.close();
6165

6266
is = getXmlStream("no-bom", XML5, encoding, encoding);
6367
xmlReader = new XmlStreamReader(is);
6468
assertEquals(xmlReader.getEncoding(), encoding);
69+
xmlReader.close();
6570
}
6671

6772
protected void _testRawNoBomInvalid(final String encoding) throws Exception {
@@ -124,20 +129,25 @@ protected void _testRawBomValid(final String encoding) throws Exception {
124129
assertEquals(xmlReader.getEncoding()
125130
.substring(0, encoding.length()), encoding);
126131
}
132+
xmlReader.close();
127133
}
128134

129135
protected void _testRawBomInvalid(final String bomEnc, final String streamEnc,
130136
final String prologEnc) throws Exception {
131137
final InputStream is = getXmlStream(bomEnc, XML3, streamEnc, prologEnc);
138+
XmlStreamReader xmlReader = null;
132139
try {
133-
final XmlStreamReader xmlReader = new XmlStreamReader(is, false);
140+
xmlReader = new XmlStreamReader(is, false);
134141
final String foundEnc = xmlReader.getEncoding();
135142
fail("Expected IOException for BOM " + bomEnc + ", streamEnc "
136143
+ streamEnc + " and prologEnc " + prologEnc + ": found "
137144
+ foundEnc);
138145
} catch (final IOException ex) {
139146
assertTrue(ex.getMessage().indexOf("Invalid encoding,") > -1);
140147
}
148+
if (xmlReader != null) {
149+
xmlReader.close();
150+
}
141151
}
142152

143153
@Test
@@ -306,6 +316,7 @@ public void _testAlternateDefaultEncoding(final String cT, final String bomEnc,
306316
assertEquals(xmlReader.getEncoding().substring(0,
307317
streamEnc.length()), streamEnc);
308318
}
319+
xmlReader.close();
309320
}
310321

311322
public void _testHttpValid(final String cT, final String bomEnc, final String streamEnc,
@@ -322,6 +333,7 @@ public void _testHttpValid(final String cT, final String bomEnc, final String st
322333
assertEquals(xmlReader.getEncoding().substring(0,
323334
streamEnc.length()), streamEnc);
324335
}
336+
xmlReader.close();
325337
}
326338

327339
protected void _testHttpInvalid(final String cT, final String bomEnc, final String streamEnc,
@@ -344,6 +356,7 @@ protected void _testHttpLenient(final String cT, final String bomEnc, final Stri
344356
prologEnc == null ? XML2 : XML3, streamEnc, prologEnc);
345357
final XmlStreamReader xmlReader = new XmlStreamReader(is, cT, true);
346358
assertEquals(xmlReader.getEncoding(), shouldbe);
359+
xmlReader.close();
347360
}
348361

349362
private static final String ENCODING_ATTRIBUTE_XML = "<?xml version=\"1.0\" ?> \n"
@@ -359,6 +372,7 @@ public void testEncodingAttributeXML() throws Exception {
359372
.getBytes("UTF-8"));
360373
final XmlStreamReader xmlReader = new XmlStreamReader(is, "", true);
361374
assertEquals(xmlReader.getEncoding(), "UTF-8");
375+
xmlReader.close();
362376
}
363377

364378
// XML Stream generator

src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,9 @@ private void checkRawEncoding(final String expected,
223223
protected String calculateRawEncoding(final String bomEnc, final String xmlGuessEnc, final String xmlEnc,
224224
final String defaultEncoding) throws IOException {
225225
final MockXmlStreamReader mock = new MockXmlStreamReader(defaultEncoding);
226-
return mock.calculateRawEncoding(bomEnc, xmlGuessEnc, xmlEnc);
226+
final String enc = mock.calculateRawEncoding(bomEnc, xmlGuessEnc, xmlEnc);
227+
mock.close();
228+
return enc;
227229
}
228230

229231
private void checkRawError(final String msgSuffix,
@@ -306,7 +308,9 @@ private void checkHttpEncoding(final String expected, final boolean lenient, fin
306308
protected String calculateHttpEncoding(final String httpContentType, final String bomEnc, final String xmlGuessEnc,
307309
final String xmlEnc, final boolean lenient, final String defaultEncoding) throws IOException {
308310
final MockXmlStreamReader mock = new MockXmlStreamReader(defaultEncoding);
309-
return mock.calculateHttpEncoding(httpContentType, bomEnc, xmlGuessEnc, xmlEnc, lenient);
311+
final String enc = mock.calculateHttpEncoding(httpContentType, bomEnc, xmlGuessEnc, xmlEnc, lenient);
312+
mock.close();
313+
return enc;
310314
}
311315

312316
private void checkHttpError(final String msgSuffix, final boolean lenient, final String httpContentType,

src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,20 @@ public class XmlStreamReaderUtilitiesCompatibilityTest extends XmlStreamReaderUt
3030
protected String calculateRawEncoding(final String bomEnc, final String xmlGuessEnc, final String xmlEnc,
3131
final String defaultEncoding) throws IOException {
3232
final MockXmlStreamReader mock = new MockXmlStreamReader(defaultEncoding);
33-
return mock.calculateRawEncoding(bomEnc, xmlGuessEnc, xmlEnc, null);
33+
final String enc = mock.calculateRawEncoding(bomEnc, xmlGuessEnc, xmlEnc, null);
34+
mock.close();
35+
return enc;
3436
}
3537
@Override
3638
protected String calculateHttpEncoding(final String httpContentType, final String bomEnc, final String xmlGuessEnc,
3739
final String xmlEnc, final boolean lenient, final String defaultEncoding) throws IOException {
3840
final MockXmlStreamReader mock = new MockXmlStreamReader(defaultEncoding);
39-
return mock.calculateHttpEncoding(
41+
String enc = mock.calculateHttpEncoding(
4042
XmlStreamReader.getContentTypeMime(httpContentType),
4143
XmlStreamReader.getContentTypeEncoding(httpContentType),
4244
bomEnc, xmlGuessEnc, xmlEnc, null, lenient);
45+
mock.close();
46+
return enc;
4347
}
4448

4549
/** Mock {@link XmlStreamReader} implementation */

src/test/java/org/apache/commons/io/output/ByteArrayOutputStreamTestCase.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,11 @@ public void testStream() throws Exception {
140140

141141
//Make sure that empty ByteArrayOutputStreams really don't create garbage
142142
//on toByteArray()
143-
assertSame(new ByteArrayOutputStream().toByteArray(),
144-
new ByteArrayOutputStream().toByteArray());
143+
final ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
144+
final ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
145+
assertSame(baos1.toByteArray(), baos2.toByteArray());
146+
baos1.close();
147+
baos2.close();
145148
}
146149
}
147150

0 commit comments

Comments
 (0)