[
https://issues.apache.org/jira/browse/QPID-5205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Keith Wall updated QPID-5205:
-----------------------------
Description:
If I create an exchange with an alternate exchange with the following command:
{code}
java -cp ... 'org.apache.qpid.example.Spout' "ADDR:test-exch; {create:
always, node:{type: topic,x-declare: {alternate-exchange:'am q.fanout'}}}"
{code}
and then try and view the exchange through the Web Management Console, I see
the following exception reported in the Broker logs.
{noformat}
2013-10-03 18:00:58,112 ERROR [qtp2123954626-50] (rest.AbstractServlet) -
Unable to perform action
java.security.PrivilegedActionException:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class
org.apache.qpid.server.security.SecurityManager and no properties discovered to
create BeanSerializer (to avoid exception, disable
SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
java.util.ArrayList[0]->java.util.LinkedHashMap["exchanges"]->java.util.ArrayList[4]->java.util.LinkedHashMap["alternateExchange"]->org.apache.qpid.server.exchange.FanoutExchange["virtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["securityManager"])
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doWithSubjectAndActor(AbstractServlet.java:208)
at
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doGet(AbstractServlet.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
at
org.apache.qpid.server.management.plugin.filter.ForbiddingAuthorisationFilter.doFilter(ForbiddingAuthorisationFilter.java:90)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:367)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.codehaus.jackson.map.JsonMappingException: No serializer found
for class org.apache.qpid.server.security.SecurityManager and no properties
discovered to create BeanSerializer (to avoid exception, disable
SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
java.util.ArrayList[0]->java.util.LinkedHashMap["exchanges"]->java.util.ArrayList[4]->java.util.LinkedHashMap["alternateExchange"]->org.apache.qpid.server.exchange.FanoutExchange["virtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["securityManager"])
at
org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52)
{noformat}
I've also seen this same problem cause a StackOverflowException. I suspect
that the different may be down to the order in which
{noformat}
Caused by: org.codehaus.jackson.map.JsonMappingException: Infinite recursion
(StackOverflowError) (through reference chain:
org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]
{noformat}
was:
If I create an exchange with an alternate exchange with the following command:
java -cp ... 'org.apache.qpid.example.Spout' "ADDR:test-exch; {create:
always, node:{type: topic,x-declare: {alternate-exchange:'am q.fanout'}}}"
and then try and view the exchange through the Web Management Console, I see
the following exception reported in the Broker logs.
{code}
2013-10-03 18:00:58,112 ERROR [qtp2123954626-50] (rest.AbstractServlet) -
Unable to perform action
java.security.PrivilegedActionException:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class
org.apache.qpid.server.security.SecurityManager and no properties discovered to
create BeanSerializer (to avoid exception, disable
SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
java.util.ArrayList[0]->java.util.LinkedHashMap["exchanges"]->java.util.ArrayList[4]->java.util.LinkedHashMap["alternateExchange"]->org.apache.qpid.server.exchange.FanoutExchange["virtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["securityManager"])
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doWithSubjectAndActor(AbstractServlet.java:208)
at
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doGet(AbstractServlet.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
at
org.apache.qpid.server.management.plugin.filter.ForbiddingAuthorisationFilter.doFilter(ForbiddingAuthorisationFilter.java:90)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:367)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.codehaus.jackson.map.JsonMappingException: No serializer found
for class org.apache.qpid.server.security.SecurityManager and no properties
discovered to create BeanSerializer (to avoid exception, disable
SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
java.util.ArrayList[0]->java.util.LinkedHashMap["exchanges"]->java.util.ArrayList[4]->java.util.LinkedHashMap["alternateExchange"]->org.apache.qpid.server.exchange.FanoutExchange["virtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["securityManager"])
at
org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52)
{code}
> Viewing an exchange with alternate exchange through the Management UI causes
> exception in Broker logs.
> ------------------------------------------------------------------------------------------------------
>
> Key: QPID-5205
> URL: https://issues.apache.org/jira/browse/QPID-5205
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: 0.25
> Reporter: Keith Wall
>
> If I create an exchange with an alternate exchange with the following command:
> {code}
> java -cp ... 'org.apache.qpid.example.Spout' "ADDR:test-exch; {create:
> always, node:{type: topic,x-declare: {alternate-exchange:'am q.fanout'}}}"
> {code}
> and then try and view the exchange through the Web Management Console, I see
> the following exception reported in the Broker logs.
> {noformat}
> 2013-10-03 18:00:58,112 ERROR [qtp2123954626-50] (rest.AbstractServlet) -
> Unable to perform action
> java.security.PrivilegedActionException:
> org.codehaus.jackson.map.JsonMappingException: No serializer found for class
> org.apache.qpid.server.security.SecurityManager and no properties discovered
> to create BeanSerializer (to avoid exception, disable
> SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
> java.util.ArrayList[0]->java.util.LinkedHashMap["exchanges"]->java.util.ArrayList[4]->java.util.LinkedHashMap["alternateExchange"]->org.apache.qpid.server.exchange.FanoutExchange["virtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["securityManager"])
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:396)
> at
> org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doWithSubjectAndActor(AbstractServlet.java:208)
> at
> org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doGet(AbstractServlet.java:74)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
> at
> org.apache.qpid.server.management.plugin.filter.ForbiddingAuthorisationFilter.doFilter(ForbiddingAuthorisationFilter.java:90)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:367)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
> at
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: org.codehaus.jackson.map.JsonMappingException: No serializer found
> for class org.apache.qpid.server.security.SecurityManager and no properties
> discovered to create BeanSerializer (to avoid exception, disable
> SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:
> java.util.ArrayList[0]->java.util.LinkedHashMap["exchanges"]->java.util.ArrayList[4]->java.util.LinkedHashMap["alternateExchange"]->org.apache.qpid.server.exchange.FanoutExchange["virtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["securityManager"])
> at
> org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52)
> {noformat}
> I've also seen this same problem cause a StackOverflowException. I suspect
> that the different may be down to the order in which
> {noformat}
> Caused by: org.codehaus.jackson.map.JsonMappingException: Infinite recursion
> (StackOverflowError) (through reference chain:
> org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]->org.apache.qpid.server.virtualhost.StandardVirtualHost["virtualHostRegistry"]->org.apache.qpid.server.virtualhost.VirtualHostRegistry["defaultVirtualHost"]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]