Karaf 4.2.11 with Scheduler feature installed
I am seeing the following error for Components implementing Runnable without
Scheduler configuration and multiple ConfigurationPID.
16:44:46.313 ERROR [pipe-start 195] Bundle org.apache.karaf.scheduler.core
[182] EventDispatcher: Error during dispatch. (java.lang.ClassCastException:
java.util.ArrayList cannot be cast to java.lang.String)
java.lang.ClassCastException: java.util.ArrayList cannot be cast to
java.lang.String
at
org.apache.karaf.scheduler.core.WhiteboardHandler.getServiceIdentifier(WhiteboardHandler.java:87)
~[?:?]
at
org.apache.karaf.scheduler.core.WhiteboardHandler.register(WhiteboardHandler.java:101)
~[?:?]
at
org.apache.karaf.scheduler.core.WhiteboardHandler.access$100(WhiteboardHandler.java:36)
~[?:?]
at
org.apache.karaf.scheduler.core.WhiteboardHandler$1.addingService(WhiteboardHandler.java:65)
~[?:?]
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
~[osgi.core-6.0.0.jar:?]
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
~[osgi.core-6.0.0.jar:?]
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
~[osgi.core-6.0.0.jar:?]
at
org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
~[osgi.core-6.0.0.jar:?]
at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
~[osgi.core-6.0.0.jar:?]
@Component {configurationPid = {"foo","bar"})
public class Foo implements Runnable {
...
}
It appears the Scheduler assumes all runnable components may have valid
Scheduler configuration in the @Component annotation or OSGi configuration
files. In my case, the Scheduler is failing to set a Service Identifier when
there is no scheduler.name configuration and the component's configurationPid
is an array.
Is this a bug?
Paul Spencer