Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-6958

[Java Broker] A confusing exception is reported for Virtual Host type declared in the configuration store but with implementation not available in the classpath

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • qpid-java-6.0
    • qpid-java-6.1
    • Broker-J
    • None

    Description

      When Virtual Host of certain type is declared in the configuration store but its implementation is not present in the classpath Broker evaluates Virtual Host type as Provided and throws Exception as below:

      2015-12-21 10:05:57,422 ERROR [Broker-Config] (o.a.q.s.m.AbstractConfiguredObject) - Failed to open object with name 'default'.  Object will be put into ERROR state.
      org.apache.qpid.server.configuration.IllegalConfigurationException: Provided type is BDB but calculated type is ProvidedStore
              at org.apache.qpid.server.model.AbstractConfiguredObject.<init>(AbstractConfiguredObject.java:263) [qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.model.AbstractConfiguredObject.<init>(AbstractConfiguredObject.java:204) [qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.model.AbstractConfiguredObject.<init>(AbstractConfiguredObject.java:196) [qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.virtualhost.AbstractVirtualHost.<init>(AbstractVirtualHost.java:210) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.virtualhost.ProvidedStoreVirtualHostImpl.<init>(ProvidedStoreVirtualHostImpl.java:50) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.virtualhost.ProvidedStoreVirtualHostImplFactory.createInstance(ProvidedStoreVirtualHostImplFactory.java:39) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.virtualhost.ProvidedStoreVirtualHostImplFactory.createInstance(ProvidedStoreVirtualHostImplFactory.java:28) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory$GenericUnresolvedConfiguredObject.resolve(AbstractConfiguredObjectTypeFactory.java:145) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory$GenericUnresolvedConfiguredObject.resolve(AbstractConfiguredObjectTypeFactory.java:125) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.GenericRecoverer.resolveObjects(GenericRecoverer.java:186) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.GenericRecoverer.performRecover(GenericRecoverer.java:91) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.GenericRecoverer.access$000(GenericRecoverer.java:41) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.GenericRecoverer$1.execute(GenericRecoverer.java:59) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.GenericRecoverer$1.execute(GenericRecoverer.java:55) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:270) [qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submitWrappedTask(TaskExecutorImpl.java:154) [qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:182) [qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.GenericRecoverer.recover(GenericRecoverer.java:54) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.store.VirtualHostStoreUpgraderAndRecoverer.perform(VirtualHostStoreUpgraderAndRecoverer.java:551) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.virtualhostnode.AbstractStandardVirtualHostNode.activate(AbstractStandardVirtualHostNode.java:104) ~[qpid-broker-core-6.0.0.jar:6.0.0]
              at org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.doActivate(AbstractVirtualHostNode.java:160) ~[qpid-broker-core-6.0.0.jar:6.0.0]
      

      The exception message does not really indicates that type is not available. It could be confusing and might consume some extra time on debugging the issue in scenarios requiring embedding Broker into application but somehow the required VH library is missed in the classpath.

      Attachments

        Activity

          People

            Unassigned Unassigned
            orudyy Alex Rudyy
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: