Sergiy Shyrkov created KARAF-4670:
-------------------------------------

             Summary: Race condition in the Activator.updated() of the 
org.apache.karaf.cellar.hazelcast
                 Key: KARAF-4670
                 URL: https://issues.apache.org/jira/browse/KARAF-4670
             Project: Karaf
          Issue Type: Bug
          Components: cellar-hazelcast
    Affects Versions: cellar-4.0.1
            Reporter: Sergiy Shyrkov
            Priority: Minor


Sometimes on the startup I get an NPE in the 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator.updated() because the 
doStart() method execution has not been finished yet and the 
hazelcastServiceFactory is still null.

My log is as follows, where the log message about the initialization of the 
hazelcastServiceFactory ("init Hazelcast service factory") comes after the call 
to Activator.updated() (causes an NPE).

Thank you!

{code}
2016-08-26 14:35:01,780: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.bundle: BundleEvent STARTING - 
org.apache.karaf.cellar.bundle
2016-08-26 14:35:01,793: INFO  [FelixStartLevel] 
org.apache.karaf.shell.impl.action.osgi.CommandExtension: Command registration 
delayed for bundle org.apache.karaf.cellar.bundle/4.0.1. Missing dependencies: 
[org.apache.karaf.cellar.core.ClusterManager, 
org.apache.karaf.cellar.core.GroupManager, 
org.apache.karaf.cellar.core.event.EventProducer]
2016-08-26 14:35:01,794: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.bundle: BundleEvent STARTED - 
org.apache.karaf.cellar.bundle
2016-08-26 14:35:01,795: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.config: BundleEvent STARTING - 
org.apache.karaf.cellar.config
2016-08-26 14:35:01,801: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.config: ServiceEvent REGISTERED - 
[org.osgi.service.cm.ManagedService] - org.apache.karaf.cellar.config
2016-08-26 14:35:01,810: INFO  [FelixStartLevel] 
org.apache.karaf.shell.impl.action.osgi.CommandExtension: Command registration 
delayed for bundle org.apache.karaf.cellar.config/4.0.1. Missing dependencies: 
[org.apache.karaf.cellar.core.ClusterManager, 
org.apache.karaf.cellar.core.GroupManager, 
org.apache.karaf.cellar.core.event.EventProducer]
2016-08-26 14:35:01,810: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.config: BundleEvent STARTED - 
org.apache.karaf.cellar.config
2016-08-26 14:35:01,811: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.features: BundleEvent STARTING - 
org.apache.karaf.cellar.features
2016-08-26 14:35:01,831: INFO  [FelixStartLevel] 
org.apache.karaf.shell.impl.action.osgi.CommandExtension: Command registration 
delayed for bundle org.apache.karaf.cellar.features/4.0.1. Missing 
dependencies: [org.apache.karaf.cellar.core.ClusterManager, 
org.apache.karaf.cellar.core.GroupManager, 
org.apache.karaf.cellar.core.event.EventProducer]
2016-08-26 14:35:01,831: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.features: BundleEvent STARTED - 
org.apache.karaf.cellar.features
2016-08-26 14:35:01,832: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.hazelcast: BundleEvent STARTING - 
org.apache.karaf.cellar.hazelcast
2016-08-26 14:35:01,839: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.hazelcast: ServiceEvent REGISTERED - 
[org.osgi.service.cm.ManagedService] - org.apache.karaf.cellar.hazelcast
2016-08-26 14:35:01,841: INFO  [FelixStartLevel] 
org.apache.karaf.shell.impl.action.osgi.CommandExtension: Registering commands 
for bundle org.apache.karaf.cellar.hazelcast/4.0.1
2016-08-26 14:35:01,841: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR HAZELCAST: 
init combined class loader
2016-08-26 14:35:01,844: ERROR [CM Configuration Updater (ManagedService 
Update: pid=[org.apache.karaf.cellar.discovery])] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: Can't update 
Hazelcast service factory
java.lang.NullPointerException
        at 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator.updated(Activator.java:392)
        at 
org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
        at 
org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
        at 
org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
        at 
org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.provide(ConfigurationManager.java:1444)
        at 
org.apache.felix.cm.impl.ConfigurationManager$ManagedServiceUpdate.run(ConfigurationManager.java:1400)
        at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:143)
        at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:110)
        at java.lang.Thread.run(Thread.java:745)
2016-08-26 14:35:01,851: DEBUG [FelixStartLevel] 
org.apache.karaf.cellar.hazelcast: BundleEvent STARTED - 
org.apache.karaf.cellar.hazelcast
2016-08-26 14:35:01,854: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR HAZELCAST: 
start the discovery service tracker
2016-08-26 14:35:01,855: DEBUG [FelixStartLevel] org.apache.karaf.cellar.shell: 
BundleEvent STARTING - org.apache.karaf.cellar.shell
2016-08-26 14:35:01,855: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR HAZELCAST: 
start the synchronizer service tracker
2016-08-26 14:35:01,857: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR 
HAZELCAST:init dispatcher
2016-08-26 14:35:01,858: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR HAZELCAST: 
create Hazelcast configuration manager
2016-08-26 14:35:01,859: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR 
HAZELCAST:init Hazelcast service factory
2016-08-26 14:35:01,862: DEBUG [pool-153-thread-1] 
org.apache.karaf.cellar.hazelcast.internal.osgi.Activator: CELLAR 
HAZELCAST:register Hazelcast instance
{code}



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

Reply via email to