You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Torsten Mielke (JIRA)" <ji...@apache.org> on 2009/03/10 17:27:39 UTC
[jira] Created: (AMQ-2154) trying to access an ObjectMessage in the
AMQ web console results in java.io.IOException: com.myclass...
trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
-------------------------------------------------------------------------------------------------------
Key: AMQ-2154
URL: https://issues.apache.org/activemq/browse/AMQ-2154
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.1.0
Environment: web console, ObjectMessage
Reporter: Torsten Mielke
Priority: Minor
The web console can be used to drill into individual message and display both their properties as well as payload.
Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Giovani Seben (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50466#action_50466 ]
Giovani Seben commented on AMQ-2154:
------------------------------------
I agree with the fix too. I'm just saying that it would be nice to inform users about the reason why the broker can't deserialize the object.
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
> Attachments: AMQ-2154.patch
>
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50432#action_50432 ]
Torsten Mielke commented on AMQ-2154:
-------------------------------------
This can be reproduced easily. Simply construct an ObjectMessage of a non-simple type (i.e. none standard JDK type) and send it to a queue. Then using the web console http://localhost:8161/admin access the message body. The above exception will be displayed instead of a proper page.
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully reassigned AMQ-2154:
-------------------------------
Assignee: Gary Tully
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Assignee: Gary Tully
> Priority: Minor
> Fix For: 5.3.0
>
> Attachments: AMQ-2154.patch
>
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (AMQ-2154) trying to access an ObjectMessage in the
AMQ web console results in java.io.IOException: com.myclass...
Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Torsten Mielke updated AMQ-2154:
--------------------------------
Description:
The web console can be used to drill into individual message and display both their properties as well as payload.
Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
Error msg and stack trace that is thrown:
{code}
java.io.IOException: com.progress.cs.id697.Producer
at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
{code}
was:
The web console can be used to drill into individual message and display both their properties as well as payload.
Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.progress.cs.id697.Producer
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Giovani Seben (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50443#action_50443 ]
Giovani Seben commented on AMQ-2154:
------------------------------------
I did some testing around this issue, and I found that adding the serializable object class to the broker's classpath will allow getBody() to return correctly.
In the suggested test case, adding "com.myclass" to the broker classpath will likely solve the problem, and would explain the ClassNotFoundException. It would probably be a good idea to return a friendly reminder about the possible cause of the problem along with the exception.
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
> Attachments: AMQ-2154.patch
>
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50458#action_50458 ]
Torsten Mielke commented on AMQ-2154:
-------------------------------------
I fully agree with your points Giovani. However I don't think it should be a requirement to add application level classes to the brokers classpath in order to drill into individual messages. I can live with the fact that the message content cannot be displayed but it should not generate a fully blown up error with stack trace in the html page but some meaningful response. After all, the message properties can still be displayed. Hence my motivation for a fix.
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
> Attachments: AMQ-2154.patch
>
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50431#action_50431 ]
Torsten Mielke commented on AMQ-2154:
-------------------------------------
This can be reproduced easily. Simply construct an ObjectMessage of a non-simple type (i.e. none standard JDK type) and send it to a queue. Then using the web console http://localhost:8161/admin access the message body. The above exception will be displayed instead of a proper page.
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (AMQ-2154) trying to access an ObjectMessage in
the AMQ web console results in java.io.IOException: com.myclass...
Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully resolved AMQ-2154.
-----------------------------
Resolution: Fixed
Fix Version/s: 5.3.0
patch applied with thanks, r754973
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
> Fix For: 5.3.0
>
> Attachments: AMQ-2154.patch
>
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (AMQ-2154) trying to access an ObjectMessage in the
AMQ web console results in java.io.IOException: com.myclass...
Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Torsten Mielke updated AMQ-2154:
--------------------------------
Attachment: AMQ-2154.patch
Attaching a possible fix for this issue. Catching the JMSException in MessageQueue.getBody() and returning it. That case it can be properly displayed in the generated html output in the browser.
Also changing ActiveMQObjectMessage.getObject() to also propagate the root exception (in my test it was a ClassNotFoundException).
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
> Attachments: AMQ-2154.patch
>
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (AMQ-2154) trying to access an ObjectMessage in the
AMQ web console results in java.io.IOException: com.myclass...
Posted by "Torsten Mielke (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Torsten Mielke updated AMQ-2154:
--------------------------------
Description:
The web console can be used to drill into individual message and display both their properties as well as payload.
Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
Error msg and stack trace that is thrown:
{code}
java.io.IOException: com.myclass
at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
{code}
was:
The web console can be used to drill into individual message and display both their properties as well as payload.
Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
Error msg and stack trace that is thrown:
{code}
java.io.IOException: com.progress.cs.id697.Producer
at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
{code}
> trying to access an ObjectMessage in the AMQ web console results in java.io.IOException: com.myclass...
> -------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2154
> URL: https://issues.apache.org/activemq/browse/AMQ-2154
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: web console, ObjectMessage
> Reporter: Torsten Mielke
> Priority: Minor
>
> The web console can be used to drill into individual message and display both their properties as well as payload.
> Displaying the payload generally works fine for TextMessages, etc but fails for ObjectMessages and probably other binary payload formats.
> This is okay and kind of expected but rather than throwing an exception with a large stack trace back to the browser client, we should capture the ex and display at least the message properties and also a short message that the content cannot be displayed due to its binary content.
> Error msg and stack trace that is thrown:
> {code}
> java.io.IOException: com.myclass
> at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:179)
> at org.apache.activemq.web.MessageQuery.getBody(MessageQuery.java:78)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984)
> at org.apache.jsp.message_jsp._jspx_meth_c_out_0(org.apache.jsp.message_jsp:400)
> at org.apache.jsp.message_jsp._jspx_meth_c_otherwise_0(org.apache.jsp.message_jsp:334)
> at org.apache.jsp.message_jsp._jspx_meth_c_choose_0(org.apache.jsp.message_jsp:151)
> at org.apache.jsp.message_jsp._jspService(org.apache.jsp.message_jsp:92)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
> at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:46)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.