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

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

                Author: ASF GitHub Bot
            Created on: 17/Oct/21 08:28
            Start Date: 17/Oct/21 08:28
    Worklog Time Spent: 10m 
      Work Description: erwindon commented on pull request #3796:
URL: https://github.com/apache/activemq-artemis/pull/3796#issuecomment-945072624


   my tests are currently all in Python as we do external tests only.
   most of it was included in 
https://issues.apache.org/jira/browse/ARTEMIS-3461.
   here is the useful part of that list.
   
   {code:java}
   123
   'hello'
   1e30
   True
   False
   [4,5,6,'hello']
   [4,5,6]
   {"a":4,"b":5,"c":6,"d":'hello'}
   [4,5,6,["abc","def","ghi"]]
   [4,{"a":5,"b":5,"c":5},6]
   {"a":[4,5,6,'hello'],"b":2}
   {code}
   
   there are many encodings for primitive types in amqp. but the 
representations for these are all handled by the qpid proton library. notable 
exceptions are the decimal types which cannot easily be understood by java. 
qpid shows these as e.g. "org.apache.qpid.proton.amqp.Decimal32@_nnnnn_" where 
_nnnnn_ is the internal value as integer. also homogeneous arrays (all elements 
have same type) are not very well supported. luckily my use-cases do not 
involve either of these.


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

    Worklog Id:     (was: 666017)
    Time Spent: 2h  (was: 1h 50m)

> Browse Queue fails when the queue contains AMQP highly structured messages
> --------------------------------------------------------------------------
>
>                 Key: ARTEMIS-3461
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3461
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Web Console
>    Affects Versions: 2.18.0
>            Reporter: Erwin Dondorp
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> send AMQP message to broker with a complex AMQP data structure of at least 2 
> levels.
>  e.g. an array containing another array
>  the code below are 6 individual snippets of simple qpid-proton-PY 
> implementations:
> {code:java}
> msg = proton.Message('hello') --> OK (no levels)
> {code}
> {code:java}
> msg = proton.Message([4,5,6,'hello']) --> OK (1 level)
> {code}
> {code:java}
> msg = proton.Message({"a":4,"b":5,"c":6,"d":'hello'}) --> OK (1 level)
> {code}
> {code:java}
> msg = proton.Message([4,5,6,["abc","def","ghi"]]) --> FAIL (2 levels)
> {code}
> {code:java}
> msg = proton.Message([4,{"a":5,"b":5,"c":5},6]) --> FAIL (2 levels)
> {code}
> {code:java}
> msg = proton.Message({"a":[4,5,6,'hello']}) --> FAIL (2 levels)
> {code}
> The messages can be constructed and send in proton without any problem. The 
> messages also look good when they are inspected using WireShark.
> The problem occurs when viewing the messages with "Browse queue" in the 
> Artemis console.
>  The message/page counters are properly populated, but the table remains 
> empty.
>  In the log-file, the following exception is shown:
> {noformat}
> 2021-09-06 09:10:51,863 WARN  
> [org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage] class 
> java.util.ArrayList is not a valid property type: 
> org.apache.activemq.artemis.api.core.ActiveMQPropertyConversionException: 
> class java.util.ArrayList is not a valid property type
>    at 
> org.apache.activemq.artemis.utils.collections.TypedProperties.setObjectProperty(TypedProperties.java:1194)
>  [artemis-commons-2.18.0. jar:2.18.0]
>    at 
> org.apache.activemq.artemis.protocol.amqp.converter.coreWrapper.CoreMapMessageWrapper.setObject(CoreMapMessageWrapper.java:140)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>    at 
> org.apache.activemq.artemis.protocol.amqp.converter.AMQPMessageSupport.createMapMessage(AMQPMessageSupport.java:364)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>    at 
> org.apache.activemq.artemis.protocol.amqp.converter.AmqpCoreConverter.toCore(AmqpCoreConverter.java:197)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>    at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:865)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>    at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:875)
>  [artemis-amqp-protocol-2.18.0.jar:2.18.0]
>    at 
> org.apache.activemq.artemis.core.management.impl.openmbean.OpenTypeSupport.convert(OpenTypeSupport.java:53)
>  [artemis-server-2.18.0.jar:2.18.0]
>    at 
> org.apache.activemq.artemis.core.management.impl.QueueControlImpl.browse(QueueControlImpl.java:1575)
>  [artemis-server-2.18.0.jar:2.18.0]
>    at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source) 
> [:1.8.0_302]
>    at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  [rt.jar:1.8.0_302]
>    at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_302]
>    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72) 
> [rt.jar:1.8.0_302]
>    at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) [:1.8.0_302]
>    at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  [rt.jar:1.8.0_302]
>    at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_302]
>    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:276) 
> [rt.jar:1.8.0_302]
>    at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>  [rt.jar:1.8.0_302]
>    at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>  [rt.jar:1.8.0_302]
>    at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) 
> [rt.jar:1.8.0_302]
>    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) 
> [rt.jar:1.8.0_302]
>    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) 
> [rt.jar:1.8.0_302]
>    at javax.management.StandardMBean.invoke(StandardMBean.java:405) 
> [rt.jar:1.8.0_302]
>    at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>  [rt.jar:1.8.0_302]
>    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
> [rt.jar:1.8.0_302]
>    at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) 
> [:1.8.0_302]
>    at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  [rt.jar:1.8.0_302]
>    at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_302]
>    at 
> org.apache.activemq.artemis.core.server.management.ArtemisMBeanServerBuilder$MBeanInvocationHandler.invoke(ArtemisMBeanServerBuilder.java:96)
>  [artemis-server-2.18.0.jar:2.18.0]
>    at com.sun.proxy.$Proxy13.invoke(Unknown Source)
>    at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:98) 
> [jolokia-core-1.6.2.jar:]
>    at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:40) 
> [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:89)
>  [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.backend.MBeanServerExecutorLocal.handleRequest(MBeanServerExecutorLocal.java:109)
>  [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:161)
>  [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99)
>  [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:429)
>  [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.backend.BackendManager.handleRequest(BackendManager.java:158) 
> [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.http.HttpRequestHandler.executeRequest(HttpRequestHandler.java:197)
>  [jolokia-core-1.6.2.jar:]
>    at 
> org.jolokia.http.HttpRequestHandler.handlePostRequest(HttpRequestHandler.java:137)
>  [jolokia-core-1.6.2.jar:]
>    at org.jolokia.http.AgentServlet$3.handleRequest(AgentServlet.java:460) 
> [jolokia-core-1.6.2.jar:]
>    at org.jolokia.http.AgentServlet.handleSecurely(AgentServlet.java:350) 
> [jolokia-core-1.6.2.jar:]
>    at org.jolokia.http.AgentServlet.handle(AgentServlet.java:321) 
> [jolokia-core-1.6.2.jar:]
>    at org.jolokia.http.AgentServlet.doPost(AgentServlet.java:284) 
> [jolokia-core-1.6.2.jar:]
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
> [jetty-all-9.4.43.v20210629-uber.jar:9.4.43.v20210629]
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
> [jetty-all-9.4.43.v20210629-uber.jar:9.4.43.v20210629]
>    at 
> org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
>    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
>    at 
> io.hawt.web.filters.FlightRecordingDownloadFacade.doFilter(FlightRecordingDownloadFacade.java:68)
>  [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at 
> io.hawt.web.auth.LoginRedirectFilter.doFilter(LoginRedirectFilter.java:57) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at 
> io.hawt.web.auth.AuthenticationFilter.lambda$executeAs$1(AuthenticationFilter.java:105)
>  [hawtio-system-2.13.5.jar:2.13.5]
>    at java.security.AccessController.doPrivileged(Native Method) 
> [rt.jar:1.8.0_302]
>    at javax.security.auth.Subject.doAs(Subject.java:422) [rt.jar:1.8.0_302]
>    at 
> io.hawt.web.auth.AuthenticationFilter.executeAs(AuthenticationFilter.java:104)
>  [hawtio-system-2.13.5.jar:2.13.5]
>    at 
> io.hawt.web.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:72) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at io.hawt.web.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:43) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at 
> io.hawt.web.auth.SessionExpiryFilter.process(SessionExpiryFilter.java:166) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at 
> io.hawt.web.auth.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:60) 
> [hawtio-system-2.13.5.jar:2.13.5]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at 
> org.apache.activemq.artemis.component.JolokiaFilter.doFilter(JolokiaFilter.java:50)
>  [artemis-web-2.18.0.jar:2.18.0]
>    at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
>    at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
>    at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
>    at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>    at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
>    at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>    at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>    at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
>    at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>    at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
>    at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>    at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
>    at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
>    at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>    at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
>    at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>    at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
>    at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>    at org.eclipse.jetty.server.Server.handle(Server.java:516)
>    at 
> org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
>    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
>    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
>    at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
>    at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
>    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
>    at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
>    at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
>    at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
>    at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
>    at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386)
>    at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
>    at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
>    at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_302]
> {noformat}
> The stack trace has minor differences based on the exact message structure.



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

Reply via email to