From ce3d74aae46b9ce475b6bad17668723341066a31 Mon Sep 17 00:00:00 2001 From: Lukas Jungmann Date: Wed, 12 Jul 2023 20:43:33 +0200 Subject: [PATCH] #77: sonTokenizer.close() recycles its buffer for each call to close() Signed-off-by: Lukas Jungmann --- impl/src/main/java/org/eclipse/parsson/JsonTokenizer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/impl/src/main/java/org/eclipse/parsson/JsonTokenizer.java b/impl/src/main/java/org/eclipse/parsson/JsonTokenizer.java index 9ffac77c..d314ae07 100644 --- a/impl/src/main/java/org/eclipse/parsson/JsonTokenizer.java +++ b/impl/src/main/java/org/eclipse/parsson/JsonTokenizer.java @@ -83,6 +83,7 @@ final class JsonTokenizer implements Closeable { // offset in the stream for the start of the buffer, will be used in // calculating JsonLocation's stream offset, column no. private long bufferOffset = 0; + private boolean closed = false; private boolean minus; private boolean fracOrExp; @@ -579,8 +580,11 @@ boolean isIntegral() { @Override public void close() throws IOException { - reader.close(); - jsonContext.bufferPool().recycle(buf); + if (!closed) { + reader.close(); + jsonContext.bufferPool().recycle(buf); + closed = true; + } } private JsonParsingException unexpectedChar(int ch) {