@@ -245,35 +245,32 @@ private void testByChunk(final byte[] encoded, final byte[] decoded, final int c
245245 * Usually signifies a bug in the Base64 commons-codec implementation.
246246 */
247247 private void testByteByByte (final byte [] encoded , final byte [] decoded , final int chunkSize , final byte [] separator ) throws Exception {
248-
249- // Start with encode.
250- InputStream in ;
251- in = new Base64InputStream (new ByteArrayInputStream (decoded ), true , chunkSize , separator );
252248 byte [] output = new byte [encoded .length ];
253- for (int i = 0 ; i < output .length ; i ++) {
254- output [i ] = (byte ) in .read ();
255- }
249+ // Start with encode.
250+ try (InputStream in = new Base64InputStream (new ByteArrayInputStream (decoded ), true , chunkSize , separator )) {
251+ for (int i = 0 ; i < output .length ; i ++) {
252+ output [i ] = (byte ) in .read ();
253+ }
256254
257- assertEquals (-1 , in .read (), "EOF" );
258- assertEquals (-1 , in .read (), "Still EOF" );
259- assertArrayEquals (encoded , output , "Streaming base64 encode" );
255+ assertEquals (-1 , in .read (), "EOF" );
256+ assertEquals (-1 , in .read (), "Still EOF" );
257+ assertArrayEquals (encoded , output , "Streaming base64 encode" );
260258
261- in .close ();
262- // Now let's try to decode.
263- in = new Base64InputStream (new ByteArrayInputStream (encoded ));
264- output = new byte [decoded .length ];
265- for (int i = 0 ; i < output .length ; i ++) {
266- output [i ] = (byte ) in .read ();
267259 }
260+ // Now let's try to decode.
261+ try (InputStream in = new Base64InputStream (new ByteArrayInputStream (encoded ))) {
262+ output = new byte [decoded .length ];
263+ for (int i = 0 ; i < output .length ; i ++) {
264+ output [i ] = (byte ) in .read ();
265+ }
268266
269- assertEquals (-1 , in .read (), "EOF" );
270- assertEquals (-1 , in .read (), "Still EOF" );
271- assertArrayEquals (decoded , output , "Streaming base64 decode" );
272-
273- in .close ();
267+ assertEquals (-1 , in .read (), "EOF" );
268+ assertEquals (-1 , in .read (), "Still EOF" );
269+ assertArrayEquals (decoded , output , "Streaming base64 decode" );
270+ }
274271
275272 // I always wanted to do this! (wrap encoder with decoder etc.).
276- in = new ByteArrayInputStream (decoded );
273+ InputStream in = new ByteArrayInputStream (decoded );
277274 for (int i = 0 ; i < 10 ; i ++) {
278275 in = new Base64InputStream (in , true , chunkSize , separator );
279276 in = new Base64InputStream (in , false );
@@ -286,7 +283,6 @@ private void testByteByByte(final byte[] encoded, final byte[] decoded, final in
286283 assertEquals (-1 , in .read (), "EOF" );
287284 assertEquals (-1 , in .read (), "Still EOF" );
288285 assertArrayEquals (decoded , output , "Streaming base64 wrap-wrap-wrap!" );
289- in .close ();
290286 }
291287
292288 /**
0 commit comments