Description
On a clean startup (the data directory is empty) everything works OK. However, when I restart Karaf (without cleaning out the data directory) I consistently get the following exception:
Exception in thread "JMX Connector Thread [service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root]" java.lang.RuntimeException: Could not start JMX connector server
at org.apache.karaf.management.ConnectorServerFactory$1.run(ConnectorServerFactory.java:103)
Caused by: java.io.IOException: Cannot bind to URL [rmi://localhost:1099/karaf-root]: javax.naming.NoInitialContextException: Unable to determine caller's BundleContext
at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:804)
at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:417)
at org.apache.karaf.management.ConnectorServerFactory$1.run(ConnectorServerFactory.java:101)
Caused by: javax.naming.NoInitialContextException: Unable to determine caller'sBundleContext
at org.apache.aries.jndi.OSGiInitialContextFactoryBuilder.getInitialContext(OSGiInitialContextFactoryBuilder.java:53)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:316)
at javax.naming.InitialContext.bind(InitialContext.java:400)
at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:625)
at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:412)
... 1 more
I'm thinking there may be timing errors. Note that the exception is only logged to the console - not to the log file. Perhaps it occurs before the logging bundle is installed?
I haven't seen this in previous versions of Karaf (2.1.0 and 1.6.0) but I've also added and changed a lot of bundles in addition to upgrading to Karaf 2.1.2. Thus I don't know for sure if this is a problem specific to Karaf 2.1.2.