Philip Harvey created QPID-4376:
-----------------------------------

             Summary: Java broker - trying to delete a queue declared in 
virtualhosts.xml causes IllegalStateException
                 Key: QPID-4376
                 URL: https://issues.apache.org/jira/browse/QPID-4376
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.18
            Reporter: Philip Harvey
            Priority: Minor


A user declared a durable queue in their virtualhosts.xml and tried to delete 
it using the web management UI. This failed due to the exception below. Note 
that this is an unusual use case (since the queue will be re-added when 
virtualhosts.xml is read during the next restart), but the broker should 
nevertheless handle it more gracefully.

{noformat}
2012-10-15 09:15:16,254 WARN  [qtp24422114-21] rest.RestServlet 
(RestServlet.java:479) - Caught exception
java.lang.IllegalStateException: org.apache.qpid.AMQStoreException: Binding 
Binding{bindingKey=***, exchange=DirectExchange[amq.direct]
, queue=***, id= d338fc97-f930-3b9b-8c4b-2ec7e1f4f80a } not found [error code 
541: internal error]
        at 
org.apache.qpid.server.model.adapter.QueueAdapter.delete(QueueAdapter.java:147)
        at 
org.apache.qpid.server.model.adapter.QueueAdapter.setDesiredState(QueueAdapter.java:720)
        at 
org.apache.qpid.server.management.plugin.servlet.rest.RestServlet.doDeleteWithSubjectAndActor(RestServlet.java:498)
        at 
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet$4.run(AbstractServlet.java:172)
        at 
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet$4.run(AbstractServlet.java:168)
        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:214)
        at 
org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet.doDelete(AbstractServlet.java:166)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:719)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965)
        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:348)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:884)
        at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:938)
        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:619)
Caused by: org.apache.qpid.AMQStoreException: Binding Binding{bindingKey=***, 
exchange=DirectExchange[amq.direct], queue=***, id= 
d338fc97-f930-3b9b-8c4b-2ec7e1f4f80a } not found [error code 541: internal 
error]
        at 
org.apache.qpid.server.store.berkeleydb.AbstractBDBMessageStore.unbindQueue(AbstractBDBMessageStore.java:843)
        at 
org.apache.qpid.server.binding.BindingFactory.removeBinding(BindingFactory.java:257)
        at 
org.apache.qpid.server.binding.BindingFactory.removeBinding(BindingFactory.java:212)
        at 
org.apache.qpid.server.queue.SimpleAMQQueue.delete(SimpleAMQQueue.java:1371)
        at 
org.apache.qpid.server.model.adapter.QueueAdapter.delete(QueueAdapter.java:138)
        ... 31 more

{noformat}

--
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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to