diff --git a/java-api/src/org/servalproject/servaldna/AbstractJsonList.java b/java-api/src/org/servalproject/servaldna/AbstractJsonList.java index bc88f7f5..b123ae7e 100644 --- a/java-api/src/org/servalproject/servaldna/AbstractJsonList.java +++ b/java-api/src/org/servalproject/servaldna/AbstractJsonList.java @@ -18,6 +18,7 @@ public abstract class AbstractJsonList { protected final JSONTableScanner table; protected HttpURLConnection httpConnection; protected JSONTokeniser json; + protected boolean closed = false; protected long rowCount = 0; protected AbstractJsonList(ServalDHttpConnectionFactory httpConnector, JSONTableScanner table){ @@ -88,6 +89,8 @@ public abstract class AbstractJsonList { json.consume(JSONTokeniser.Token.EOF); return null; } + if (closed && tok == JSONTokeniser.Token.EOF) + return null; if (rowCount != 0) JSONTokeniser.match(tok, JSONTokeniser.Token.COMMA); else @@ -110,10 +113,11 @@ public abstract class AbstractJsonList { public void close() throws IOException { + if (closed) + return; + closed = true; httpConnection = null; - if (json != null) { + if (json != null) json.close(); - json = null; - } } }