Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-889

[AMQ7, large Message, JMX browse()] large message on queue, JMX operation browse() throws NullPointer

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • AMQ 7.0.3.GA
    • broker-core
    • Hide
      • insert 10 text messages with a small body size (using the CORE protocol)
      • insert 1 text message with body size 80000 char. (char is stored in 2 bytes so it will trigger default large message size 100Kib)
      • invoke browse() operation from within jolokia
      • results in Nullpointer exception as above.

      Unit test that demonstrates issue attached

      Show
      insert 10 text messages with a small body size (using the CORE protocol) insert 1 text message with body size 80000 char. (char is stored in 2 bytes so it will trigger default large message size 100Kib) invoke browse() operation from within jolokia results in Nullpointer exception as above. Unit test that demonstrates issue attached

    Description

      When a large message is added to a queue, the JMX browse() operation throws a Nullpointer:

      java.lang.NullPointerException
          at org.apache.activemq.artemis.core.message.impl.CoreMessage.encode(CoreMessage.java:533)
          at org.apache.activemq.artemis.core.message.impl.CoreMessage.checkEncode(CoreMessage.java:219)
          at org.apache.activemq.artemis.core.message.impl.CoreMessage.getReadOnlyBodyBuffer(CoreMessage.java:196)
          at org.apache.activemq.artemis.core.management.impl.openmbean.OpenTypeSupport$TextMessageOpenTypeFactory.getFields(OpenTypeSupport.java:291)
          at org.apache.activemq.artemis.core.management.impl.openmbean.OpenTypeSupport.convert(OpenTypeSupport.java:59)
          at org.apache.activemq.artemis.core.management.impl.QueueControlImpl.browse(QueueControlImpl.java:958)
          at org.apache.activemq.artemis.core.management.impl.QueueControlImpl.browse(QueueControlImpl.java:940)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:483)
          at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
          at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:483)
          at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
          at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
          at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
          at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
          at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
          at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
          at javax.management.StandardMBean.invoke(StandardMBean.java:405)
          at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
          at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
          at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:98)
          at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:40)
          at org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:89)
          at org.jolokia.backend.MBeanServerExecutorLocal.handleRequest(MBeanServerExecutorLocal.java:109)
          at org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:159)
          at org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99)
          at org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:413)
      

      If a mixture of Large Messages and "normal" sized messages are on the queue the browse operation still throws the exception.

      Attachments

        Issue Links

          Activity

            People

              rh-ee-ataylor Andy Taylor
              rhn-support-pfox Patrick Fox (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: