You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/10/13 20:57:00 UTC

[jira] [Work logged] (ARTEMIS-3461) Browse Queue fails when the queue contains AMQP highly structured messages

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

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

                Author: ASF GitHub Bot
            Created on: 13/Oct/21 20:56
            Start Date: 13/Oct/21 20:56
    Worklog Time Spent: 10m 
      Work Description: erwindon opened a new pull request #3794:
URL: https://github.com/apache/activemq-artemis/pull/3794


   added a message viewer for AMQP messages.
   the message is used before it is converted to CORE to bypass any conversion errors and to be able to use the original message
   
   WORK IN PROGRESS, DO NOT MERGE


-- 
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: gitbox-unsubscribe@activemq.apache.org

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


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

            Worklog Id:     (was: 665358)
    Remaining Estimate: 0h
            Time Spent: 10m

> 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: 10m
>  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)