[ 
https://issues.apache.org/jira/browse/AMQ-4177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rob Davies resolved AMQ-4177.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 5.8.0

Fixed on trunk by SVN  revision 1410767
                
> 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
>            Assignee: Rob Davies
>            Priority: Minor
>             Fix For: 5.8.0
>
>
> 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...
> NOTE the browse() works fine; I wasn't sure if all bean properties were 
> properly exposed in the CompositeData browse() function - so not sure how big 
> a deal not having browseMessages() is...
> 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()
> The offending bit of the stack trace is: 
> org.apache.activemq.ConnectionClosedException: The connection is already 
> closed at 
> org.apache.activemq.ActiveMQConnection.checkClosed(ActiveMQConnection.java:1462)
>  at 
> I guess there's a connection property or something on the message maybe?
> {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