Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
transaction-manager-1.3.0, jmx-1.1.5, transaction-blueprint-2.0.0
-
None
-
Windows 7 version 6.1 x64
Java 1.7.0_80 x64
Description
I have found some unstable behavior when starting Karaf 4.0.3.
Apache Aries Transaction Blueprint 2.0.0 bundle start success is random.
I have to restart Karaf several (about 3 to 10) times to get the error.
It looks like it is some sort of a bundle race or something.
The list of features to be installed:
feature:install -v eventadmin;
feature:install -v http-whiteboard;
feature:install -v jdbc;
feature:install -v pax-jdbc-pool-dbcp2;
feature:install -v eclipselink/2.6.0;
feature:install -v jpa/2.2.0;
Exception during Karaf start:
karaf@root()> ERROR: Bundle org.apache.aries.blueprint.core [13] EventDispatcher: Error during dispatch. (java.lang.NullPointerException)
java.lang.NullPointerException
at org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl.addingService(NamespaceHandlerRegistryImpl.java:126)
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:991)
at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:839)
at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:546)
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557)
at org.apache.felix.framework.Felix.registerService(Felix.java:3549)
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:459)
at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:193)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:710)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:385)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Cut from bundle:list command result:
108 | Active | 80 | 1.2 | javax.interceptor API
109 | Active | 80 | 1.2 | javax.transaction API
110 | Active | 80 | 1.1.1 | Apache Aries Transaction Blueprint
111 | Failure | 80 | 2.0.0 | Apache Aries Transaction Blueprint
112 | Active | 80 | 1.3.0 | Apache Aries Transaction Manager
Diag command result for problem bundle:
Apache Aries Transaction Blueprint (111)
----------------------------------------
Status: Failure
Blueprint
11.11.15 12:06
Exception:
Service already unregistered.
java.lang.IllegalStateException: Service already unregistered.
at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:140)
at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:195)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:710)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:385)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
I have recorded some logs with DEBUG level. One with normal start and another with problem start.
http://www.lorien.biz/karaf/logs.zip
I have recorded a video to demonstrate it: http://www.youtube.com/watch?v=GzFy_suhwNg
I've never seen Transaction bundle fail without exception from JMX. But I've seen exception from JMX without Transaction bundle fail.
Attachments
Issue Links
- relates to
-
ARIES-1477 NPE in NamespaceHandlerRegistryImpl
- Resolved
-
ARIES-1478 Avoid possible IllegalStateException when registering a service
- Resolved