james strachan created AMQ-4177:
-----------------------------------

             Summary: browseMessages() fails when using Jolokia to browse JMX
                 Key: AMQ-4177
                 URL: https://issues.apache.org/jira/browse/AMQ-4177
             Project: ActiveMQ
          Issue Type: Improvement
         Environment: 5.7.0
            Reporter: james strachan
            Priority: Minor


I tried using Jolokia to browse the JSON view of JMX for ActiveMQ. Things 
generally worked great, however the browseMessages() function causes issues 
with the Jolokia JSON marshaller - it seems we return beans which are not 
really usable as is. Not sure how easy this is to fix...

Here's the stack trace when browsing a queue called 'cheese' on a JVM running 
ActiveMQ and jolokia servlet such as with a URL like: 
http://localhost:8080/jolokia/exec/org.apache.activemq:BrokerName=localhost,Destination=cheese,Type=Queue/browseMessages()
{code}
{
error_type: "java.lang.IllegalStateException",
error: "java.lang.IllegalStateException : Error while extracting metaData from 
ActiveMQConnection 
{id=ID:stracmac.home-58797-1352910163300-7:1,clientId=ID:stracmac.home-58797-1352910163300-6:1,started=false}",
status: 500,
stacktrace: "java.lang.IllegalStateException: Error while extracting metaData 
from ActiveMQConnection 
{id=ID:stracmac.home-58797-1352910163300-7:1,clientId=ID:stracmac.home-58797-1352910163300-6:1,started=false}
 at 
org.jolokia.converter.json.BeanExtractor.extractBeanPropertyValue(BeanExtractor.java:242)
 at 
org.jolokia.converter.json.BeanExtractor.extractJsonifiedPropertyValue(BeanExtractor.java:161)
 at 
org.jolokia.converter.json.BeanExtractor.exctractJsonifiedValue(BeanExtractor.java:147)
 at 
org.jolokia.converter.json.BeanExtractor.extractObject(BeanExtractor.java:78) 
at 
org.jolokia.converter.json.ObjectToJsonConverter.callHandler(ObjectToJsonConverter.java:351)
 at 
org.jolokia.converter.json.ObjectToJsonConverter.extractObject(ObjectToJsonConverter.java:181)
 at 
org.jolokia.converter.json.BeanExtractor.extractJsonifiedPropertyValue(BeanExtractor.java:169)
 at 
org.jolokia.converter.json.BeanExtractor.exctractJsonifiedValue(BeanExtractor.java:147)
 at 
org.jolokia.converter.json.BeanExtractor.extractObject(BeanExtractor.java:78) 
at 
org.jolokia.converter.json.ObjectToJsonConverter.callHandler(ObjectToJsonConverter.java:351)
 at 
org.jolokia.converter.json.ObjectToJsonConverter.extractObject(ObjectToJsonConverter.java:181)
 at 
org.jolokia.converter.json.ListExtractor.extractObject(ListExtractor.java:71) 
at 
org.jolokia.converter.json.ObjectToJsonConverter.callHandler(ObjectToJsonConverter.java:351)
 at 
org.jolokia.converter.json.ObjectToJsonConverter.extractObject(ObjectToJsonConverter.java:181)
 at 
org.jolokia.converter.json.ObjectToJsonConverter.extractObjectWithContext(ObjectToJsonConverter.java:144)
 at 
org.jolokia.converter.json.ObjectToJsonConverter.convertToJson(ObjectToJsonConverter.java:116)
 at 
org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:340)
 at org.jolokia.backend.BackendManager.handleRequest(BackendManager.java:140) 
at 
org.jolokia.http.HttpRequestHandler.executeRequest(HttpRequestHandler.java:175) 
at 
org.jolokia.http.HttpRequestHandler.handleGetRequest(HttpRequestHandler.java:79)
 at org.jolokia.http.AgentServlet$3.handleRequest(AgentServlet.java:296) at 
org.jolokia.http.AgentServlet.handle(AgentServlet.java:228) at 
org.jolokia.http.AgentServlet.doGet(AgentServlet.java:193) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598) at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486) at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 
at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
 at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413) 
at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
 at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
 at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 
at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) 
at org.eclipse.jetty.server.Server.handle(Server.java:350) at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
 at 
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
 at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
 at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630) at 
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230) at 
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
 at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)
 at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
 at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
 at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538) 
at java.lang.Thread.run(Thread.java:722) Caused by: 
java.lang.reflect.InvocationTargetException at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601) at 
org.jolokia.converter.json.BeanExtractor.extractBeanPropertyValue(BeanExtractor.java:237)
 ... 47 more Caused by: org.apache.activemq.ConnectionClosedException: The 
connection is already closed at 
org.apache.activemq.ActiveMQConnection.checkClosed(ActiveMQConnection.java:1462)
 at 
org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1449)
 at 
org.apache.activemq.ActiveMQConnection.getMetaData(ActiveMQConnection.java:432) 
... 52 more "
}{code}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to