Alex Rudyy created QPID-7175:
--------------------------------

             Summary: [Java Broker] Deletion of managing certificate trustore 
referenced from port attribute clientCertRecorder causes configuration 
integrity check failures on following broker restart
                 Key: QPID-7175
                 URL: https://issues.apache.org/jira/browse/QPID-7175
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
            Reporter: Alex Rudyy


It is possible to delete ManagedPeerCertificateTrustStore being referenced from 
Port#clientCertRecorder. The following Broker restart fails with exception like 
the one below
{noformat}
[main] ERROR org.apache.qpid.server.Broker - Exception during startup
java.lang.IllegalArgumentException: Cannot resolve some objects: 
[GenericUnresolvedConfiguredObject{class=AmqpPortImpl, 
unresolvedObjects=[NameDependency{TrustStore, "test" }]}]
        at 
org.apache.qpid.server.store.GenericRecoverer.resolveObjects(GenericRecoverer.java:250)
 ~[classes/:na]
        at 
org.apache.qpid.server.store.GenericRecoverer.performRecover(GenericRecoverer.java:91)
 ~[classes/:na]
        at 
org.apache.qpid.server.store.GenericRecoverer.access$000(GenericRecoverer.java:41)
 ~[classes/:na]
        at 
org.apache.qpid.server.store.GenericRecoverer$1.execute(GenericRecoverer.java:59)
 ~[classes/:na]
        at 
org.apache.qpid.server.store.GenericRecoverer$1.execute(GenericRecoverer.java:55)
 ~[classes/:na]
        at 
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:270)
 ~[classes/:na]
        at 
org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submitWrappedTask(TaskExecutorImpl.java:154)
 ~[classes/:na]
        at 
org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:182)
 ~[classes/:na]
        at 
org.apache.qpid.server.store.GenericRecoverer.recover(GenericRecoverer.java:54) 
~[classes/:na]
        at 
org.apache.qpid.server.store.BrokerStoreUpgraderAndRecoverer.perform(BrokerStoreUpgraderAndRecoverer.java:846)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractSystemConfig.activate(AbstractSystemConfig.java:232)
 ~[classes/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_66]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_66]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_66]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_66]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1308)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1287)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject$8.onSuccess(AbstractConfiguredObject.java:908)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject$8.onSuccess(AbstractConfiguredObject.java:902)
 ~[classes/:na]
        at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319) 
~[guava-18.0.jar:na]
        at 
com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)
 ~[guava-18.0.jar:na]
        at 
com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
 ~[guava-18.0.jar:na]
        at 
com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101) 
~[guava-18.0.jar:na]
        at 
com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170)
 ~[guava-18.0.jar:na]
        at 
com.google.common.util.concurrent.Futures.addCallback(Futures.java:1322) 
~[guava-18.0.jar:na]
        at 
com.google.common.util.concurrent.Futures.addCallback(Futures.java:1258) 
~[guava-18.0.jar:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject.doAttainState(AbstractConfiguredObject.java:901)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject.access$300(AbstractConfiguredObject.java:80)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject$1.execute(AbstractConfiguredObject.java:513)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject$1.execute(AbstractConfiguredObject.java:500)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:561)
 ~[classes/:na]
        at 
org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:554)
 ~[classes/:na]
        at 
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:270)
 ~[classes/:na]
        at 
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:342)
 ~[classes/:na]
        at java.security.AccessController.doPrivileged(Native Method) 
~[na:1.8.0_66]
        at javax.security.auth.Subject.doAs(Subject.java:360) ~[na:1.8.0_66]
        at 
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:335)
 ~[classes/:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
~[na:1.8.0_66]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
~[na:1.8.0_66]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
~[na:1.8.0_66]
        at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66]

Process finished with exit code 1

{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to