Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-7645

NullPointerException when securing SSL JMX access in Fuse

    Details

    • Type: Bug
    • Status: Done
    • Priority: Minor
    • Resolution: Done
    • Affects Version/s: jboss-fuse-6.3
    • Fix Version/s: fuse-6.x-GA
    • Component/s: Karaf
    • Labels:
    • Environment:

      6.3 R5,

    • Steps to Reproduce:
      Hide

      Follow all the steps from chapter 2.4. Enabling Remote JMX SSL in the JBoss Fuse Fuse Security Guide.

      Then restart the Karaf container and watch the log file for mentioned exception.

      Show
      Follow all the steps from chapter 2.4. Enabling Remote JMX SSL in the JBoss Fuse Fuse Security Guide. Then restart the Karaf container and watch the log file for mentioned exception.

      Description

      Following the Fuse Security Guide chapter 2.4. Enabling Remote JMX SSL and restarting the Karaf container, it raises the error

      12:02:18,505 | INFO  | FelixStartLevel  | OsgiKeystoreManager              | 23 - org.apache.karaf.jaas.config - 2.4.0.redhat-630310 | Keystore jmxKeyStore not found
      12:02:18,506 | INFO  | FelixStartLevel  | ConnectorServerFactory           | 45 - org.apache.karaf.management.server - 2.4.0.redhat-630310 | Can't init JMXConnectorServer with SSL enabled: Unable to lookup configured keystore and/or truststore
      12:02:18,552 | ERROR | FelixStartLevel  | tServiceReferenceRecipe$Listener | 22 - org.apache.aries.blueprint.core - 1.8.0 | Error calling listener method public void org.apache.karaf.management.ConnectorServerFactory.unregister(org.apache.karaf.jaas.config.KeystoreInstance,java.util.Map)
      java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_80]
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_80]
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_80]
              at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_80]
              at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.invokeMethods(AbstractServiceReferenceRecipe.java:588)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$Listener.unbind(AbstractServiceReferenceRecipe.java:557)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.unbind(AbstractServiceReferenceRecipe.java:458)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.updateListeners(AbstractServiceReferenceRecipe.java:438)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.ReferenceListRecipe.internalCreate(ReferenceListRecipe.java:78)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[22:org.apache.aries.blueprint.core:1.8.0]
              at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_80]
              at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:725)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:412)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:277)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[22:org.apache.aries.blueprint.core:1.8.0]
              at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1127)[org.apache.felix.framework-4.4.1.jar:]
              at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:696)[org.apache.felix.framework-4.4.1.jar:]
              at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:484)[org.apache.felix.framework-4.4.1.jar:]
              at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429)[org.apache.felix.framework-4.4.1.jar:]
              at org.apache.felix.framework.Felix.startBundle(Felix.java:2100)[org.apache.felix.framework-4.4.1.jar:]
              at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1299)[org.apache.felix.framework-4.4.1.jar:]
              at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)[org.apache.felix.framework-4.4.1.jar:]
              at java.lang.Thread.run(Thread.java:745)[:1.7.0_80]
      Caused by: java.lang.NullPointerException
              at org.apache.karaf.management.ConnectorServerFactory.unregister(ConnectorServerFactory.java:405)
              ... 35 more
      

      Apart from the error and a big call stack, everything seems to be working fine. JMX access is SSL enabled and JMX clients can connect securely.

      However, can we get rid of the big exception with its call stack? It causes confusion as to whether the container starts up correctly.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  oscerd Andrea Cosentino
                  Reporter:
                  mielket Torsten Mielke
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: