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 <[email protected]>
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 <[email protected]>
---
.../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>