[ 
https://issues.apache.org/jira/browse/ARTEMIS-3315?focusedWorklogId=601821&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-601821
 ]

ASF GitHub Bot logged work on ARTEMIS-3315:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 25/May/21 16:17
            Start Date: 25/May/21 16:17
    Worklog Time Spent: 10m 
      Work Description: 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:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 601821)
    Time Spent: 40m  (was: 0.5h)

> QueueControl fails on serializing AMQP messages with invalid application 
> properties
> -----------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-3315
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3315
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Domenico Francesco Bruscino
>            Assignee: Domenico Francesco Bruscino
>            Priority: Major
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> The QueueControl fails to get the first message as JSON if the first message 
> of a queue is an AMQP message with invalid application properties:
> {code:java}
> ava.lang.IllegalArgumentException: AMQ219034: Params for management 
> operations must be of the following type: int long double String boolean Map 
> or array thereof but found ...
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to