diff --git a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/model/SseResponseBody.java b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/model/SseResponseBody.java index 5cdabf8ed5d..e37212ef45b 100644 --- a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/model/SseResponseBody.java +++ b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/model/SseResponseBody.java @@ -82,7 +82,7 @@ public SseResponseBody addHeader(String name, Object value) { @Override public JsonObject toJson() throws JsonException { - JsonObject json = Json.createObjectBuilder(super.toJson()).build(); + JsonObject json = super.toJson(); if (!headers.isEmpty()) { JsonObject o = Json.createObjectBuilder().build(); @@ -92,7 +92,7 @@ public JsonObject toJson() throws JsonException { JsonUtil.accumalate(o, key, JsonUtil.getJsonValue(value)); } } - JsonUtil.accumalate(json, "headers", o); + json = JsonUtil.accumalate(json, "headers", o); } return json; diff --git a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateCmdResultJsonProvider.java b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateCmdResultJsonProvider.java index 70b4f36fb35..bc65b02db0b 100644 --- a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateCmdResultJsonProvider.java +++ b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateCmdResultJsonProvider.java @@ -47,7 +47,7 @@ import java.util.Properties; import javax.json.JsonException; import javax.json.JsonObject; -import javax.json.Json; +import javax.json.JsonObjectBuilder; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.ext.Provider; @@ -65,7 +65,7 @@ public class AdminCommandStateCmdResultJsonProvider extends AdminCommandStateJsonProvider { @Override - protected void addActionReporter(ActionReporter ar, JsonObject json) throws JsonException { + protected void addActionReporter(ActionReporter ar, JsonObjectBuilder json) throws JsonException { if (ar != null) { CommandResult cr = CompositeUtil.instance().getModel(CommandResult.class); cr.setMessage(ar.getMessage()); @@ -78,7 +78,7 @@ protected void addActionReporter(ActionReporter ar, JsonObject json) throws Json } cr.setExtraProperties(map); } - json.put("command-result", (JsonObject) JsonUtil.getJsonValue(cr)); + json.add("command-result", (JsonObject) JsonUtil.getJsonValue(cr)); } } diff --git a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateJsonProvider.java b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateJsonProvider.java index 6b98ac5562d..8403bfc5d09 100644 --- a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateJsonProvider.java +++ b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/AdminCommandStateJsonProvider.java @@ -87,13 +87,13 @@ public JsonObject processState(AdminCommandState state) throws JsonException { result.add("id", state.getId()); result.add("empty-payload", state.isOutboundPayloadEmpty()); ActionReporter ar = (ActionReporter) state.getActionReport(); - addActionReporter(ar, result.build()); + addActionReporter(ar, result); return result.build(); } - protected void addActionReporter(ActionReporter ar, JsonObject json) throws JsonException { + protected void addActionReporter(ActionReporter ar, JsonObjectBuilder json) throws JsonException { if (ar != null) { - json.put("action-report", actionReportJsonProvider.processReport(ar)); + json.add("action-report", actionReportJsonProvider.processReport(ar)); } } diff --git a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/OptionsResultJsonProvider.java b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/OptionsResultJsonProvider.java index b075c63d180..b55d27f373c 100644 --- a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/OptionsResultJsonProvider.java +++ b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/provider/OptionsResultJsonProvider.java @@ -37,8 +37,8 @@ * only if the new code is made subject to such option by the copyright * holder. * - * Portions Copyright [2017] Payara Foundation and/or affiliates */ +// Portions Copyright [2017-2018] Payara Foundation and/or affiliates package org.glassfish.admin.rest.provider; @@ -47,7 +47,6 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.ext.Provider; -import java.util.Iterator; import java.util.Set; import java.util.logging.Level; import javax.json.Json; @@ -93,11 +92,8 @@ public String getContent(OptionsResult proxy) { public JsonArray getRespresenationForMethodMetaData(OptionsResult proxy) { JsonArrayBuilder arr = Json.createArrayBuilder(); Set methods = proxy.methods(); - Iterator iterator = methods.iterator(); - String methodName; - while (iterator.hasNext()) { + for (String methodName : methods){ try { - methodName = iterator.next(); MethodMetaData methodMetaData = proxy.getMethodMetaData(methodName); JsonObjectBuilder method = Json.createObjectBuilder(); method.add(NAME, methodName); @@ -108,7 +104,6 @@ public JsonArray getRespresenationForMethodMetaData(OptionsResult proxy) { RestLogging.restLogger.log(Level.SEVERE, null, ex); } } - return arr.build(); } @@ -131,12 +126,11 @@ public JsonArray getRespresenationForMethodMetaData(OptionsResult proxy) { private JsonObject getParameter(ParameterMetaData parameterMetaData) throws JsonException { JsonObjectBuilder result = Json.createObjectBuilder(); - Iterator iterator = parameterMetaData.attributes().iterator(); - String attributeName; - while (iterator.hasNext()) { - attributeName = iterator.next(); + + for (String attributeName: parameterMetaData.attributes()){ result.add(attributeName, parameterMetaData.getAttributeValue(attributeName)); } + return result.build(); } @@ -144,11 +138,8 @@ private JsonObject getMessageParams(MethodMetaData methodMetaData) throws JsonEx JsonObjectBuilder result = Json.createObjectBuilder(); if (methodMetaData.sizeParameterMetaData() > 0) { Set parameters = methodMetaData.parameters(); - Iterator iterator = parameters.iterator(); - String parameter; - while (iterator.hasNext()) { - parameter = iterator.next(); - ParameterMetaData parameterMetaData = methodMetaData.getParameterMetaData(parameter); + for (String parameter: parameters){ + ParameterMetaData parameterMetaData = methodMetaData.getParameterMetaData(parameter); result.add(parameter, getParameter(parameterMetaData)); } } diff --git a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/readers/JsonParameterMapProvider.java b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/readers/JsonParameterMapProvider.java index 33db61ad115..aa988726a4e 100644 --- a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/readers/JsonParameterMapProvider.java +++ b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/readers/JsonParameterMapProvider.java @@ -47,6 +47,8 @@ import java.io.InputStreamReader; import java.lang.annotation.Annotation; import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.json.Json; import javax.json.JsonArray; import javax.json.JsonObject; @@ -104,6 +106,7 @@ public ParameterMap readFrom(Class type, Type genericType, return map; } catch (Exception ex) { + Logger.getLogger("org.glassfish.admin.rest").log(Level.SEVERE, null, ex); ParameterMap map = new ParameterMap(); map.add("error", "Entity Parsing Error: " + ex.getMessage()); diff --git a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/utils/JsonUtil.java b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/utils/JsonUtil.java index 653080f8ddd..14bc8c90daf 100644 --- a/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/utils/JsonUtil.java +++ b/nucleus/admin/rest/rest-service/src/main/java/org/glassfish/admin/rest/utils/JsonUtil.java @@ -239,14 +239,17 @@ private static Confidential getConfidentialAnnotation(Class clazz, String getter } } + /** + * Converts a {@link Collection} of {@link JsonValue}s or other Json-compatible types into a {@link JsonAray} + * @param c + * @return + * @throws JsonException + */ public static JsonArray processCollection(Collection c) throws JsonException { JsonArrayBuilder result = Json.createArrayBuilder(); - Iterator i = c.iterator(); - while (i.hasNext()) { - JsonValue item = getJsonValue(i.next()); + for (Object item: c){ result.add(JsonUtil.getJsonValue(item)); } - return result.build(); } @@ -292,38 +295,6 @@ public static int getInt(JsonObject jsonObject, String key, int dflt) { return dflt; } } - - /** - * Puts a value into the specified jsonObject - *

- * This method is synchronised on the jsonObject - * @param jsonObject - * @param key - * @param value - */ - public static void put(JsonObject jsonObject, String key, Object value) { - try { - synchronized(jsonObject) { - jsonObject.put(key, value!=null?getJsonValue(value):JsonObject.NULL); - } - } catch (JsonException e) { - // ignore. The exception is thrown only if the value is non-finite number - // or if the key is null. - } - } - - /** - * Puts a {@link JsonObject} into a {@link JsonArray} - *

- * This method is synchronised on the jsonArray - * @param jsonArray - * @param item - */ - public static void put(JsonArray jsonArray, JsonObject item) { - synchronized(jsonArray) { - jsonArray.add(item); - } - } /** * Puts a value into a {@link JsonObject} with the specified key. @@ -333,21 +304,26 @@ public static void put(JsonArray jsonArray, JsonObject item) { * @param jsonObject * @param key * @param value + * @return * @since 5.0 */ - public static void accumalate(JsonObject jsonObject, String key, JsonValue value){ + public static JsonObject accumalate(JsonObject jsonObject, String key, JsonValue value){ + JsonObjectBuilder jsonBuilder = Json.createObjectBuilder(jsonObject); if (jsonObject.containsKey(key)){ JsonValue previous = jsonObject.get(key); if (previous instanceof JsonArray){ - ((JsonArray) previous).add(value); + JsonArrayBuilder prev = Json.createArrayBuilder((JsonArray)previous); + prev.add(value); + jsonBuilder.add(key, prev); } else { JsonArrayBuilder arrayBuilder = Json.createArrayBuilder(); arrayBuilder.add(previous); arrayBuilder.add(value); - jsonObject.put(key, arrayBuilder.build()); + jsonBuilder.add(key, arrayBuilder); } } else { - jsonObject.put(key, value); + jsonBuilder.add(key, value); } + return jsonBuilder.build(); } } diff --git a/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/AdminCommandStateJsonProprietaryReader.java b/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/AdminCommandStateJsonProprietaryReader.java index 7ec180f313f..877e13f9b24 100644 --- a/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/AdminCommandStateJsonProprietaryReader.java +++ b/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/AdminCommandStateJsonProprietaryReader.java @@ -37,8 +37,9 @@ * only if the new code is made subject to such option by the copyright * holder. * - * Portions Copyright [2017] Payara Foundation and/or affiliates */ +// Portions Copyright [2017-2018] Payara Foundation and/or affiliates + package com.sun.enterprise.admin.remote.reader; import com.sun.enterprise.admin.remote.AdminCommandStateImpl; @@ -83,6 +84,7 @@ public AdminCommandState readFrom(final InputStream is, final String contentType String str = baos.toString("UTF-8"); try { JsonParser parser = Json.createParser(new StringReader(str)); + parser.next(); JsonObject json = parser.getObject(); return readAdminCommandState(json); } catch (JsonException ex) { diff --git a/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusDTOJsonProprietaryReader.java b/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusDTOJsonProprietaryReader.java index 8fceac66d16..3b8473b733c 100644 --- a/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusDTOJsonProprietaryReader.java +++ b/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusDTOJsonProprietaryReader.java @@ -37,6 +37,8 @@ * only if the new code is made subject to such option by the copyright * holder. */ +// Portions Copyright [2018] Payara Foundation and/or affiliates + package com.sun.enterprise.admin.remote.reader; import java.io.IOException; @@ -67,8 +69,7 @@ public ProgressStatusDTO readFrom(final HttpURLConnection urlConnection) throws @Override public ProgressStatusDTO readFrom(final InputStream is, final String contentType) throws IOException { - JsonParser jp = factory.createJsonParser(is); - try { + try (JsonParser jp = factory.createJsonParser(is)) { JsonToken token = jp.nextToken(); //sorounding object jp.nextToken(); //Name progress-status JsonToken token2 = jp.nextToken(); @@ -78,8 +79,6 @@ public ProgressStatusDTO readFrom(final InputStream is, final String contentType throw new IOException("Not expected type (progress-status) but (" + jp.getCurrentName() + ")"); } return readProgressStatus(jp); - } finally { - jp.close(); } } diff --git a/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusEventJsonProprietaryReader.java b/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusEventJsonProprietaryReader.java index 0813476dead..538c55a4f88 100644 --- a/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusEventJsonProprietaryReader.java +++ b/nucleus/admin/util/src/main/java/com/sun/enterprise/admin/remote/reader/ProgressStatusEventJsonProprietaryReader.java @@ -37,6 +37,8 @@ * only if the new code is made subject to such option by the copyright * holder. */ +// Portions Copyright [2018] Payara Foundation and/or affiliates + package com.sun.enterprise.admin.remote.reader; import java.io.IOException; @@ -70,8 +72,7 @@ public ProgressStatusEvent readFrom(HttpURLConnection urlConnection) throws IOEx @Override public ProgressStatusEvent readFrom(final InputStream is, final String contentType) throws IOException { - JsonParser jp = factory.createJsonParser(is); - try { + try (JsonParser jp = factory.createJsonParser(is)) { JsonToken token = jp.nextToken(); //sorounding object jp.nextToken(); //Name progress-status-event JsonToken token2 = jp.nextToken(); @@ -81,8 +82,6 @@ public ProgressStatusEvent readFrom(final InputStream is, final String contentTy throw new IOException("Not expected type (progress-status-event) but (" + jp.getCurrentName() + ")"); } return readProgressStatusEvent(jp); - } finally { - jp.close(); } }