This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push: new 50a64d5 Enhancement [JOHNZON-278] Return constant instead of new instance of empty block / empty array 50a64d5 is described below commit 50a64d59a81384fe400570e36fc93ce7e2347746 Author: Markus KARG <mar...@headcrashing.eu> AuthorDate: Sat Sep 21 15:58:29 2019 +0000 Enhancement [JOHNZON-278] Return constant instead of new instance of empty block / empty array Even in these days of modern Java, reducing memory consumption, GC stress and memory fragmentation, are beneficial side aspects. If makes no sense to create new empty instances of JsonArray and JsonObject again and again. For this case, JSON-P provides special constants. It makes sense to return these constants always. Signed-off-by: Markus KARG <mar...@headcrashing.eu> --- .../main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java | 4 ++-- .../main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java | 8 ++++---- pom.xml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java index af2aa25..5ea8c65 100644 --- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java +++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java @@ -298,7 +298,7 @@ class JsonArrayBuilderImpl implements JsonArrayBuilder, Serializable { addValue(builder.build()); return this; } - + private void setValue(int idx, JsonValue value) { if (value == null || tmpList == null) { throw npe(); @@ -333,7 +333,7 @@ class JsonArrayBuilderImpl implements JsonArrayBuilder, Serializable { @Override public JsonArray build() { if(tmpList == null) { - return new JsonArrayImpl(Collections.emptyList(), bufferProvider); + return JsonValue.EMPTY_JSON_ARRAY; } return new JsonArrayImpl(Collections.unmodifiableList(tmpList), bufferProvider); } diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java index de13a0a..fafcc74 100644 --- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java +++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java @@ -176,16 +176,16 @@ class JsonObjectBuilderImpl implements JsonObjectBuilder, Serializable { if(name == null || value == null) { throw new NullPointerException("name or value/builder must not be null"); } - + attributeMap.put(name, value); } - + @Override public JsonObject build() { - + if(attributeMap == null || attributeMap.isEmpty()) { - return new JsonObjectImpl(Collections.EMPTY_MAP, bufferProvider); + return JsonValue.EMPTY_JSON_OBJECT; } else { Map<String, JsonValue> dump = (Collections.unmodifiableMap(attributeMap)); return new JsonObjectImpl(dump, bufferProvider); diff --git a/pom.xml b/pom.xml index 10f9688..dc13b53 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ <url>http://johnzon.apache.org</url> <properties> - <geronimo-jsonp.version>1.2</geronimo-jsonp.version> + <geronimo-jsonp.version>1.3-SNAPSHOT</geronimo-jsonp.version> <geronimo-jsonb.version>1.2</geronimo-jsonb.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <johnzon.site.url>https://svn.apache.org/repos/asf/johnzon/site/publish/</johnzon.site.url>