Date: Fri, 13 Mar 2015 10:48:08 +0100
From:
peter.hermsdorf@xxxxxxxxx
To:
ecf-dev@xxxxxxxxxxx
Subject: Re: [ecf-dev] Problem using multiple services from
single server
You are right, thanks for the hint. With the suggested
runlevel setup the services get imported actually and my
testsuite is working again!
But on startup i see the following exception (see below),
which is caused by accessing
org.eclipse.ecf.internal.osgi.services.remoteserviceadmin.Activator.context
before the Activator.start method was called.
But since the access comes from
AbstractTopologyManager.getRemoteServiceAdmin I don't really
understand why Activator was not yet called by the
framework.
Also fiddling around with the start levels of
org.eclipse.ecf.osgi.services.remoteserviceadmin does not
yield to a result yet ... it's currently as autostart with
level 4.
my current setup of startlevel for ecf is:
target {
"org.eclipse.ecf.ssl*3.4.0.v20150306-2024"
"org.eclipse.ecf*3.4.0.v20150306-2024" autostart
"org.eclipse.ecf.console"
"org.eclipse.ecf.discovery" autostart
"org.eclipse.ecf.osgi.services.distribution"
autostart startLevel=3
"org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"
autostart
"org.eclipse.ecf.osgi.services.remoteserviceadmin"
autostart
"org.eclipse.ecf.provider.remoteservice" autostart
"org.eclipse.ecf.provider" autostart
"org.eclipse.ecf.remoteservice" autostart
"org.eclipse.ecf.remoteservice.asyncproxy*1.0.0.v20140410-1838"
"org.eclipse.ecf.sharedobject"
"org.eclipse.ecf.identity.nl_de"
"org.eclipse.ecf.identity*3.4.0.v20150306-2024"
autostart
"org.eclipse.osgi.services.remoteserviceadmin"
autostart
}
where the default autostart level is at 4.
Thanks for your support!
java.lang.NullPointerException
at
org.osgi.util.tracker.ServiceTracker.<init>(ServiceTracker.java:224)
at
org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.getRemoteServiceAdmin(AbstractTopologyManager.java:155)
at
org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.handleServiceModifying(AbstractTopologyManager.java:441)
at
org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.handleEvent(AbstractTopologyManager.java:397)
at
org.eclipse.ecf.internal.osgi.services.distribution.BasicTopologyManagerImpl.event(BasicTopologyManagerImpl.java:119)
at
org.eclipse.ecf.internal.osgi.services.distribution.BasicTopologyManagerComponent.event(BasicTopologyManagerComponent.java:57)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$6.call(ServiceRegistry.java:1192)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1239)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1222)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyEventListenerHooksPrivileged(ServiceRegistry.java:1189)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:806)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:171)
at
org.eclipse.equinox.internal.app.EclipseAppDescriptor.refreshProperties(EclipseAppDescriptor.java:124)
at
org.eclipse.equinox.internal.app.EclipseAppContainer.refreshAppDescriptors(EclipseAppContainer.java:470)
at
org.eclipse.equinox.internal.app.EclipseAppContainer.lock(EclipseAppContainer.java:520)
at
org.eclipse.equinox.internal.app.EclipseAppDescriptor.createAppHandle(EclipseAppDescriptor.java:190)
at
org.eclipse.equinox.internal.app.EclipseAppDescriptor.launchSpecific(EclipseAppDescriptor.java:90)
at
org.osgi.service.application.ApplicationDescriptor.launch(ApplicationDescriptor.java:311)
at
org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:260)
at
org.eclipse.equinox.internal.app.EclipseAppContainer.start(EclipseAppContainer.java:104)
at
org.eclipse.equinox.internal.app.Activator.addingService(Activator.java:134)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at
org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
at
org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:317)
at
org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
at
org.eclipse.equinox.internal.app.Activator.start(Activator.java:56)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.security.AccessController.doPrivileged(Native
Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at
org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at
org.eclipse.core.internal.runtime.PlatformActivator.startAppContainer(PlatformActivator.java:44)
at
org.eclipse.core.internal.runtime.PlatformActivator.start(PlatformActivator.java:31)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.security.AccessController.doPrivileged(Native
Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at
org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.ClassLoader.defineClass1(Native Method)
at
java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:632)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:607)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:568)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:165)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
at
org.eclipse.equinox.internal.ds.model.ServiceComponent.createInstance(ServiceComponent.java:493)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.createInstance(ServiceComponentProp.java:270)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:331)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at
org.eclipse.equinox.internal.ds.Resolver.buildNewlySatisfied(Resolver.java:473)
at
org.eclipse.equinox.internal.ds.Resolver.enableComponents(Resolver.java:217)
at
org.eclipse.equinox.internal.ds.SCRManager.performWork(SCRManager.java:816)
at
org.eclipse.equinox.internal.ds.SCRManager$QueuedJob.dispatch(SCRManager.java:783)
at
org.eclipse.equinox.internal.ds.WorkThread.run(WorkThread.java:89)
at java.lang.Thread.run(Thread.java:744)
Am 13.03.2015 um 09:25
schrieb Wim Jongman:
Unfortunately, this is not a correct
assumption. You have to check the run
configuration and see the start order of the
equinox.ds bundle. If this bundle starts at 2, it
will cause your component bundles to also start
early. No matter what the sequence number is in ss.
You could try the following: Set the start order of
equinox.ds to 4 and the start order of ecf
distribution to 3. This is done in the run
configuration for development time and in the
product file configuration when you build it.
Cheers,
Wim
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev