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