You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@activemq.apache.org by GitBox <gi...@apache.org> on 2021/05/25 16:17:07 UTC

[GitHub] [activemq-artemis] clebertsuconic commented on a change in pull request #3594: ARTEMIS-3315 Fix serializing AMQP messages with invalid application properties

clebertsuconic commented on a change in pull request #3594:
URL: https://github.com/apache/activemq-artemis/pull/3594#discussion_r638956841



##########
File path: artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JsonUtil.java
##########
@@ -212,10 +224,10 @@ public static void addToArray(final Object param, final JsonArrayBuilder jsonArr
       } else if (param instanceof Object[]) {
          JsonArrayBuilder objectArrayBuilder = JsonLoader.createArrayBuilder();
          for (Object parameter : (Object[])param) {
-            addToArray(parameter, objectArrayBuilder);
+            addToArray(parameter, objectArrayBuilder, ignoreInvalidParams);
          }
          jsonArrayBuilder.add(objectArrayBuilder);
-      } else {
+      } else if (!ignoreInvalidParams) {

Review comment:
       Instead of throwing an error,
   
   what about just make the method be:
   
   ```java
      public static void addToObject(final String key, final Object param, final JsonObjectBuilder jsonObjectBuilder) {
         if (param instanceof Integer) {
            jsonObjectBuilder.add(key, (Integer) param);
         } else if (param instanceof Long) {
            jsonObjectBuilder.add(key, (Long) param);
         } else if (param instanceof Double) {
            jsonObjectBuilder.add(key, (Double) param);
         } else if (param instanceof String) {
            jsonObjectBuilder.add(key, (String) param);
         } else if (param instanceof Boolean) {
            jsonObjectBuilder.add(key, (Boolean) param);
         } else if (param instanceof Map) {
            JsonObject mapObject = toJsonObject((Map<String, Object>) param);
            jsonObjectBuilder.add(key, mapObject);
         } else if (param instanceof Short) {
            jsonObjectBuilder.add(key, (Short) param);
         } else if (param instanceof Byte) {
            jsonObjectBuilder.add(key, ((Byte) param).shortValue());
         } else if (param instanceof SimpleString) {
            jsonObjectBuilder.add(key, param.toString());
         } else if (param == null) {
            jsonObjectBuilder.addNull(key);
         } else if (param instanceof byte[]) {
            JsonArrayBuilder byteArrayObject = toJsonArrayBuilder((byte[]) param);
            jsonObjectBuilder.add(key, byteArrayObject);
         } else if (param instanceof Object[]) {
            final JsonArrayBuilder objectArrayBuilder = JsonLoader.createArrayBuilder();
            for (Object parameter : (Object[])param) {
               addToArray(parameter, objectArrayBuilder);
            }
            jsonObjectBuilder.add(key, objectArrayBuilder);
         } else if (param instanceof Number) {
            jsonObjectBuilder.add(key, ((Number)param).doubleValue());
         } else {
            jsonObjectBuilder.add(key, param.toString());
         }
      }
   ```
   
   
   remove the argument ignoreInvalidParams
   
   
   and do a similar change on the addToArray




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org