diff --git a/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java b/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java index dec96b5df..ec674cac8 100644 --- a/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java +++ b/src/main/java/io/ebeaninternal/server/text/json/DJsonContext.java @@ -47,8 +47,6 @@ public class DJsonContext implements SpiJsonContext { private final JsonFactory jsonFactory; - private final TypeManager typeManager; - private final Object defaultObjectMapper; private final JsonConfig.Include defaultInclude; @@ -57,11 +55,10 @@ public class DJsonContext implements SpiJsonContext { public DJsonContext(SpiEbeanServer server, JsonFactory jsonFactory, TypeManager typeManager) { this.server = server; - this.typeManager = typeManager; this.jsonFactory = (jsonFactory != null) ? jsonFactory : new JsonFactory(); this.defaultObjectMapper = this.server.getServerConfig().getObjectMapper(); this.defaultInclude = this.server.getServerConfig().getJsonInclude(); - this.jsonScalar = new DJsonScalar(this.typeManager); + this.jsonScalar = new DJsonScalar(typeManager); } @Override @@ -121,9 +118,8 @@ public class DJsonContext implements SpiJsonContext { public T toBean(Class cls, JsonParser parser, JsonReadOptions options) throws JsonIOException { BeanDescriptor desc = getDescriptor(cls); - SpiJsonReader readJson = new ReadJson(desc, parser, options, determineObjectMapper(options)); try { - return desc.jsonRead(readJson, null); + return desc.jsonRead(new ReadJson(desc, parser, options, determineObjectMapper(options)), null); } catch (IOException e) { throw new JsonIOException(e); } @@ -133,8 +129,7 @@ public class DJsonContext implements SpiJsonContext { public DJsonBeanReader createBeanReader(Class cls, JsonParser parser, JsonReadOptions options) throws JsonIOException { BeanDescriptor desc = getDescriptor(cls); - SpiJsonReader readJson = new ReadJson(desc, parser, options, determineObjectMapper(options)); - return new DJsonBeanReader<>(desc, readJson); + return new DJsonBeanReader<>(desc, new ReadJson(desc, parser, options, determineObjectMapper(options))); } @Override @@ -354,8 +349,7 @@ public class DJsonContext implements SpiJsonContext { @Override public SpiJsonWriter createJsonWriter(Writer writer) { - JsonGenerator generator = createGenerator(writer); - return createJsonWriter(generator, null); + return createJsonWriter(createGenerator(writer), null); } @Override @@ -375,9 +369,7 @@ public class DJsonContext implements SpiJsonContext { gen.writeFieldName(key); } gen.writeStartArray(); - WriteJson writeJson = createWriteJson(gen, options); - for (T bean : collection) { BeanDescriptor d = getDescriptor(bean.getClass()); d.jsonWrite(writeJson, (EntityBean) bean, null);