diff --git a/src/main/java/org/json/JSONTokener.java b/src/main/java/org/json/JSONTokener.java index 8c98c77..c180580 100644 --- a/src/main/java/org/json/JSONTokener.java +++ b/src/main/java/org/json/JSONTokener.java @@ -1,11 +1,6 @@ package org.json; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.StringReader; +import java.io.*; /* Public Domain. @@ -522,4 +517,10 @@ public class JSONTokener { return " at " + this.index + " [character " + this.character + " line " + this.line + "]"; } + + public void close() throws IOException { + if(reader!=null){ + reader.close(); + } + } } diff --git a/src/test/java/org/json/junit/JSONTokenerTest.java b/src/test/java/org/json/junit/JSONTokenerTest.java index da716b8..59ca6d8 100644 --- a/src/test/java/org/json/junit/JSONTokenerTest.java +++ b/src/test/java/org/json/junit/JSONTokenerTest.java @@ -313,4 +313,16 @@ public class JSONTokenerTest { assertEquals(0, t2.next()); assertFalse(t2.more()); } + + @Test + public void testAutoClose(){ + Reader reader = new StringReader("some test string"); + try { + JSONTokener tokener = new JSONTokener(reader); + tokener.close(); + tokener.next(); + } catch (Exception exception){ + assertEquals("Stream closed", exception.getMessage()); + } + } }