]
Jeff Mesnil updated WFLY-6652:
------------------------------
Attachment: standalone-full.xml
Warning when stopping a server with a deployed MDB listening to a
topic
-----------------------------------------------------------------------
Key: WFLY-6652
URL:
https://issues.jboss.org/browse/WFLY-6652
Project: WildFly
Issue Type: Bug
Components: JMS
Affects Versions: 10.0.0.Final
Reporter: Jeff Mesnil
Assignee: Jeff Mesnil
Priority: Minor
Attachments: standalone-full.xml
How to reproduce:
* start WildFly *with ActiveMQ security for in-vm (override-in-vm-security=false)* and a
pooled-connection-factory with user credentials (see attached configuration)
* deploy the regular helloworld-mdb quickstart
* stop WildFly (with Ctl+C)
The server logs a warning:
{noformat}
17:48:54,217 WARN [org.apache.activemq.artemis.core.server] (Thread-6
(ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=1c98f514-2290-11e6-a581-c1ccabba71e3-1850673655-879332228))
Sending unexpected exception to the client: java.lang.IllegalArgumentException: No
PolicyContextHandler for key=javax.security.auth.Subject.container
at javax.security.jacc.PolicyContext.getContext(PolicyContext.java:96)
at
org.jboss.security.plugins.SubjectActions$GetSubjectAction.run(SubjectActions.java:90)
at
org.jboss.security.plugins.SubjectActions$GetSubjectAction.run(SubjectActions.java:82)
at java.security.AccessController.doPrivileged(Native Method)
at
org.jboss.security.plugins.SubjectActions.getActiveSubject(SubjectActions.java:316)
at
org.jboss.security.plugins.JBossAuthorizationManager.getCurrentRoles(JBossAuthorizationManager.java:331)
at
org.jboss.security.plugins.JBossAuthorizationManager.doesUserHaveRole(JBossAuthorizationManager.java:148)
at
org.wildfly.extension.messaging.activemq.WildFlySecurityManager$1.run(WildFlySecurityManager.java:105)
at
org.wildfly.extension.messaging.activemq.WildFlySecurityManager$1.run(WildFlySecurityManager.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at
org.wildfly.extension.messaging.activemq.WildFlySecurityManager.validateUserAndRole(WildFlySecurityManager.java:78)
at
org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.check(SecurityStoreImpl.java:162)
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1272)
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1243)
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.deleteQueue(ServerSessionImpl.java:598)
at
org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.handlePacket(ServerSessionPacketHandler.java:244)
at
org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:626)
at
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:349)
at
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:331)
at
org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:616)
at
org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:171)
at
org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:100)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
{noformat}
When the server is stopped, ActiveMQ RA will attempt to destroy the core queue
corresponding to the MDB listening on the JMS topic.
On the broker side, the exception occurs because there is no dependency between the
pooled-connection-factory's service and the boostrap security service that handles the
javax.security.auth.Subject.container context.