From 0e1c815826c0d970a0722f12917eb5ed52875af2 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 2 Mar 2018 00:15:01 +0100 Subject: [PATCH] FIX: DataReader was read twice in exception-path (#1314) --- .../io/ebeaninternal/server/type/ScalarTypeJsonList.java | 5 +++-- .../java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java b/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java index c628af5f8..92f12f1cf 100644 --- a/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java +++ b/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java @@ -70,11 +70,12 @@ public class ScalarTypeJsonList { @Override public List read(DataReader dataReader) throws SQLException { + String json = dataReader.getString(); try { // parse JSON into modifyAware list - return EJson.parseList(dataReader.getString(), true); + return EJson.parseList(json, true); } catch (IOException e) { - throw new SQLException("Failed to parse JSON content as List: [" + dataReader.getString() + "]", e); + throw new SQLException("Failed to parse JSON content as List: [" + json + "]", e); } } diff --git a/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java b/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java index f2605331f..afe521fe6 100644 --- a/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java +++ b/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java @@ -73,11 +73,12 @@ public class ScalarTypeJsonSet { @Override public Set read(DataReader dataReader) throws SQLException { + String json = dataReader.getString(); try { // parse JSON into modifyAware list - return EJson.parseSet(dataReader.getString(), true); + return EJson.parseSet(json, true); } catch (IOException e) { - throw new SQLException("Failed to parse JSON content as List: [" + dataReader.getString() + "]", e); + throw new SQLException("Failed to parse JSON content as List: [" + json + "]", e); } }