Community
Participate
Working Groups
Environment: JmDNS, R-OSGi Error occurs on consumer side with a service tracker running, provider side no errors/exceptions. Used a filter with service tracker. The remote service does still work as it should though. [log;+0100 2011.01.10 11:28:12:666;ERROR;org.eclipse.ecf.osgi.services.distribution;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.distribution;code=4;message=org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl:registerRemoteServiceReferences:Remote service is null for remote reference RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9279;containerRelativeID=57];ref=RemoteServiceReference{r-osgi://jumper:9279#57-[devsosgi.simulator.ISimulator]}];severity4;exception=null;children=[]]]
Can you provide a test case that reproduces this behavior?
Created attachment 186627 [details] RSConsumer (error comes up here)
Created attachment 186628 [details] RSProvider
I have added a test case (very simple!). Please use the *.launch files to start an appropriate environment. First start the RSConsumer, then the RSProvider. The error occurs on the RSConsumer side. I would be very pleased about hints for a fix or workaround.
You don't get any exception on the provider end?
No exception on provider end.
Created attachment 186713 [details] RSConsumer (error comes up here)
Created attachment 186714 [details] RSProvider
RSProvider: osgi> WARNING: Port 9278 already in use. This instance of R-OSGi is running on port 9280 [log;+0100 2011.01.13 12:05:14:211;INFO;org.eclipse.ecf.osgi.services.discovery;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.discovery;code=1;message=serviceDiscovered:ignoring loopback ServiceReference: ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9280/svc_H44/ugnZY3CFa7BwubhIhsRnNis=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9280/svc_H44/ugnZY3CFa7BwubhIhsRnNis=];severity1;exception=null;children=[]]] [log;+0100 2011.01.13 12:05:16:948;INFO;org.eclipse.ecf.osgi.services.discovery;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.discovery;code=1;message=serviceDiscovered:ignoring loopback ServiceReference: ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9280/svc_YX4lK27cjm24r2j9hkOmbAlnK+o=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9280/svc_YX4lK27cjm24r2j9hkOmbAlnK+o=];severity1;exception=null;children=[]]] RSConsumer: osgi> WARNING: Port 9278 already in use. This instance of R-OSGi is running on port 9279 [log;+0100 2011.01.13 12:05:14:387;INFO;org.eclipse.ecf.remoteservice;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.remoteservice;code=0;message=No async remote service interface found with name=services.ServiceAAsync for proxy service class=services.ServiceA;severity2;exception=null;children=[]]] [log;+0100 2011.01.13 12:05:16:973;ERROR;org.eclipse.ecf.osgi.services.distribution;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.distribution;code=4;message=org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl:registerRemoteServiceReferences:Remote service is null for remote reference RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9280;containerRelativeID=54];ref=RemoteServiceReference{r-osgi://jumper:9280#54-[services.ServiceA]}];severity4;exception=null;children=[]]]
Please provide patches to the two existing projects. New projects make it hard to track your changes and incorporate them with mine.
(In reply to comment #10) > Please provide patches to the two existing projects. New projects make it hard > to track your changes and incorporate them with mine. Okay, I just added the service interface also to the RSConsumer (was missing there). But nothing changed so this was not the problem.
Can you set a breakpoint in org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl.registerRemoteServiceReferences(RemoteServiceEndpointDescription, IRemoteServiceContainer, IRemoteServiceReference[]) line 583 and issue "services" on the console when it's hit?
(In reply to comment #12) > Can you set a breakpoint in > org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl.registerRemoteServiceReferences(RemoteServiceEndpointDescription, > IRemoteServiceContainer, IRemoteServiceReference[]) line 583 and issue > "services" on the console when it's hit? remoteReferences = [RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9279;containerRelativeID=54];ref=RemoteServiceReference{r-osgi://jumper:9279#54-[services.ServiceA]}]] remoteService = null So null of course does come from remoteServiceContainer .getContainerAdapter().getRemoteService(...)
(In reply to comment #13) > (In reply to comment #12) > > Can you set a breakpoint in > > org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl.registerRemoteServiceReferences(RemoteServiceEndpointDescription, > > IRemoteServiceContainer, IRemoteServiceReference[]) line 583 and issue > > "services" on the console when it's hit? > > remoteReferences = > [RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9279;containerRelativeID=54];ref=RemoteServiceReference{r-osgi://jumper:9279#54-[services.ServiceA]}]] > > remoteService = null > > So null of course does come from remoteServiceContainer > .getContainerAdapter().getRemoteService(...) The FIRST service registered is not null, it is: remoteReferences = [RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9279;containerRelativeID=52];ref=RemoteServiceReference{r-osgi://jumper:9279#52-[services.ServiceA]}]] remoteService = org.eclipse.ecf.internal.provider.r_osgi.RemoteServiceImpl@74c12978
(In reply to comment #14) > (In reply to comment #13) > > (In reply to comment #12) > > > Can you set a breakpoint in > > > org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl.registerRemoteServiceReferences(RemoteServiceEndpointDescription, > > > IRemoteServiceContainer, IRemoteServiceReference[]) line 583 and issue > > > "services" on the console when it's hit? > > > > remoteReferences = > > [RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9279;containerRelativeID=54];ref=RemoteServiceReference{r-osgi://jumper:9279#54-[services.ServiceA]}]] > > > > remoteService = null > > > > So null of course does come from remoteServiceContainer > > .getContainerAdapter().getRemoteService(...) > > The FIRST service registered is not null, it is: > > remoteReferences = > [RemoteServiceReference[remoteServiceID=org.eclipse.ecf.remoteservice.RemoteServiceID[containerID=r-osgi://jumper:9279;containerRelativeID=52];ref=RemoteServiceReference{r-osgi://jumper:9279#52-[services.ServiceA]}]] > > remoteService = > org.eclipse.ecf.internal.provider.r_osgi.RemoteServiceImpl@74c12978 I think it could be something on provider end or with the R-OSGi Container of course...
I need the output of "services" issued on the console when the breakpoint is hit.
(In reply to comment #16) > I need the output of "services" issued on the console when the breakpoint is > hit. Hi Markus, sorry I'm not sure what to do, I don't have a "services" var there. Do you mean "this.serviceLocations": [RemoteServiceEndpointDescriptionImpl[svcInterfaces=[services.ServiceA];supportedConfigTypes=[ecf.r_osgi.peer];serviceIntents=null;location=null;remoteServiceId=52;discoveryServiceID=ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9279/svc_lBGjGs3zl4MOLUNu8y6o0j7PFeE=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9279/svc_lBGjGs3zl4MOLUNu8y6o0j7PFeE=];endpointID=null;endpointAsID=r-osgi://jumper:9279;connectTargetID=null;remoteServicesFilter=null;props={ecf.rsvc.ns=ecf.namespace.r_osgi.remoteservice, osgi.remote.service.interfaces=services.ServiceA, ecf.sp.cns=ecf.namespace.r_osgi, ecf.rsvc.id=[B@6d56d7c8, org.eclipse.ecf.internal.discovery.id=[B@41a7c484, ecf.sp.ect=ecf.r_osgi.peer, ecf.sp.cid=[B@6070c38c}], RemoteServiceEndpointDescriptionImpl[svcInterfaces=[services.ServiceA];supportedConfigTypes=[ecf.r_osgi.peer];serviceIntents=null;location=null;remoteServiceId=54;discoveryServiceID=ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9279/svc_Bogjr3V4fuSvV/hFcrYKI4ZsuOI=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9279/svc_Bogjr3V4fuSvV/hFcrYKI4ZsuOI=];endpointID=null;endpointAsID=r-osgi://jumper:9279;connectTargetID=null;remoteServicesFilter=null;props={ecf.rsvc.ns=ecf.namespace.r_osgi.remoteservice, osgi.remote.service.interfaces=services.ServiceA, ecf.sp.cns=ecf.namespace.r_osgi, ecf.rsvc.id=[B@31d1fc02, org.eclipse.ecf.internal.discovery.id=[B@31be0369, ecf.sp.ect=ecf.r_osgi.peer, ecf.sp.cid=[B@50f800db}]]
Never mind, try this patch: diff --git a/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java b/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ index 5dd3433..9ae51d9 100644 --- a/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java +++ b/protocols/bundles/ch.ethz.iks.r_osgi.remote/src/main/java/ch/ethz/iks/r_osgi/impl/ChannelEndpointImpl.java @@ -1043,6 +1043,8 @@ public final class ChannelEndpointImpl implements ChannelEndpoint { final String serviceID = suMsg.getServiceID(); final short stateUpdate = suMsg.getType(); + final String serviceURI = getRemoteAddress() + .resolve("#" + serviceID).toString(); switch (stateUpdate) { case LeaseUpdateMessage.TOPIC_UPDATE: { updateTopics((String[]) suMsg.getPayload()[0], (String[]) suMsg @@ -1054,8 +1056,7 @@ public final class ChannelEndpointImpl implements ChannelEndpoint { (String[]) suMsg.getPayload()[0], serviceID, (Dictionary) suMsg.getPayload()[1], this); - remoteServices.put(getRemoteAddress().resolve("#" + serviceID) //$NON-NLS-1$ - .toString(), ref); + remoteServices.put(serviceURI, ref); RemoteOSGiServiceImpl .notifyRemoteServiceListeners(new RemoteServiceEvent( @@ -1065,14 +1066,18 @@ public final class ChannelEndpointImpl implements ChannelEndpoint { } case LeaseUpdateMessage.SERVICE_MODIFIED: { final Dictionary newProps = (Dictionary) suMsg.getPayload()[1]; + //sanitize new properties + newProps.put(RemoteOSGiService.SERVICE_URI, serviceURI); + newProps.remove(Constants.SERVICE_PID); + newProps.remove(RemoteOSGiService.R_OSGi_REGISTRATION); + final ServiceRegistration reg = (ServiceRegistration) proxiedServices .get(serviceID); if (reg != null) { reg.setProperties(newProps); } - final RemoteServiceReferenceImpl ref = getRemoteReference(getRemoteAddress() - .resolve("#" + serviceID).toString()); //$NON-NLS-1$ + final RemoteServiceReferenceImpl ref = getRemoteReference(serviceURI); //$NON-NLS-1$ ref.setProperties(newProps); RemoteOSGiServiceImpl .notifyRemoteServiceListeners(new RemoteServiceEvent( @@ -1084,8 +1089,7 @@ public final class ChannelEndpointImpl implements ChannelEndpoint { return null; } final RemoteServiceReference ref = (RemoteServiceReference) remoteServices - .remove(getRemoteAddress().resolve("#" + serviceID) //$NON-NLS-1$ - .toString()); + .remove(serviceURI); if (ref != null) { RemoteOSGiServiceImpl .notifyRemoteServiceListeners(new RemoteServiceEvent( @@ -1100,8 +1104,7 @@ public final class ChannelEndpointImpl implements ChannelEndpoint { be.printStackTrace(); } proxiedServices.remove(serviceID); - remoteServices.remove(getRemoteAddress().resolve( - "#" + serviceID).toString()); //$NON-NLS-1$ + remoteServices.remove(serviceURI); //$NON-NLS-1$ }
Hm, it does seem to fix this bug in the test case (given here) but it's not bug free in my full case. There I are services beeing registered roughly the same time. Open a new bug or stay with this? I think they could have similar reasons... Now there is this ERROR ("getRemoteServiceReferences result is empty") sometimes not, and often also with an Exception on provider side: I'll look at this again tomorrow. Good luck and thanks for your help! ----- Consumer end----- [log;+0100 2011.01.14 18:39:27:542;INFO;org.eclipse.ecf.remoteservice;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.remoteservice;code=0;message=No async remote service interface found with name=devsosgi.simulator.IAtomicSimulatorAsync for proxy service class=devsosgi.simulator.IAtomicSimulator;severity2;exception=null;children=[]]] [log;+0100 2011.01.14 18:39:27:557;INFO;org.eclipse.ecf.remoteservice;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.remoteservice;code=0;message=No async remote service interface found with name=devsosgi.simulator.IAtomicSimulatorAsync for proxy service class=devsosgi.simulator.IAtomicSimulator;severity2;exception=null;children=[]]] [log;+0100 2011.01.14 18:39:29:973;ERROR;org.eclipse.ecf.osgi.services.distribution;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.distribution;code=4;message=org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl:handleDiscoveredServiceAvailable:getRemoteServiceReferences result is empty. containerHelper=RemoteServiceContainer [containerID=r-osgi://jumper:9278, container=org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer@1b8d4c9a, containerAdapter=org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer@1b8d4c9a]remoteReferences=null;severity4;exception=null;children=[]]] ----- Provider end----- !ENTRY org.eclipse.osgi 4 0 2011-01-14 18:39:23.347 !MESSAGE An unexpected runtime error has occurred. !STACK 0 java.lang.NullPointerException at ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl$3.modifiedService(RemoteOSGiServiceImpl.java:556) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerModified(ServiceTracker.java:909) at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:237) at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:840) at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:933) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:756) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:711) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:171) at org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:370) at org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:342) at org.eclipse.ecf.internal.osgi.services.distribution.EventHookImpl.handleRegisteredServiceEvent(EventHookImpl.java:126) at org.eclipse.ecf.internal.osgi.services.distribution.Activator.registerExistingServices(Activator.java:196) at org.eclipse.ecf.internal.osgi.services.distribution.Activator.access$0(Activator.java:187) at org.eclipse.ecf.internal.osgi.services.distribution.Activator$1.run(Activator.java:181) at java.lang.Thread.run(Unknown Source) !ENTRY ch.ethz.iks.r_osgi.remote 4 0 2011-01-14 18:39:23.348 !MESSAGE !STACK 0 java.lang.NullPointerException at ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl$3.modifiedService(RemoteOSGiServiceImpl.java:556) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerModified(ServiceTracker.java:909) at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:237) at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:840) at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:933) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:756) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:711) at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:171) at org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:370) at org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:342) at org.eclipse.ecf.internal.osgi.services.distribution.EventHookImpl.handleRegisteredServiceEvent(EventHookImpl.java:126) at org.eclipse.ecf.internal.osgi.services.distribution.Activator.registerExistingServices(Activator.java:196) at org.eclipse.ecf.internal.osgi.services.distribution.Activator.access$0(Activator.java:187) at org.eclipse.ecf.internal.osgi.services.distribution.Activator$1.run(Activator.java:181) at java.lang.Thread.run(Unknown Source) [log;+0100 2011.01.14 18:39:27:369;INFO;org.eclipse.ecf.osgi.services.discovery;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.discovery;code=1;message=serviceDiscovered:ignoring loopback ServiceReference: ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9279/svc_qmjBascz9BO4EwHO4/uSYij33dU=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9279/svc_qmjBascz9BO4EwHO4/uSYij33dU=];severity1;exception=null;children=[]]] [14.01.2011 18:39:28][devsosgi.simulator.atomic.AtomicComponentTracker] INFO : devsosgi.model.crossing.Crossing -> Atomic simulator created and registered. [log;+0100 2011.01.14 18:39:29:972;INFO;org.eclipse.ecf.osgi.services.discovery;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.discovery;code=1;message=serviceDiscovered:ignoring loopback ServiceReference: ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9279/svc_0PPDnFHzpBeWvffGume2FweTrHk=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9279/svc_0PPDnFHzpBeWvffGume2FweTrHk=];severity1;exception=null;children=[]]] ----- Sometimes with this on provider end----- Exception in thread "r-OSGi ChannelWorkerThread0" java.lang.NullPointerException at ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.populateLease(ChannelEndpointImpl.java:1383) at ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.handleMessage(ChannelEndpointImpl.java:1025) at ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl$2.run(ChannelEndpointImpl.java:288) at ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl$1.run(ChannelEndpointImpl.java:253)
Fix released to master with http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/commit/?id=e1a95f36c362194b503722d9b0ff1b92bb4cab17
(In reply to comment #19) > Hm, it does seem to fix this bug in the test case (given here) but it's not bug > free in my full case. There I are services beeing registered roughly the same > time. Open a new bug or stay with this? I think they could have similar > reasons... > > Now there is this ERROR ("getRemoteServiceReferences result is empty") > sometimes not, and often also with an Exception on provider side: > > I'll look at this again tomorrow. Good luck and thanks for your help! > > ----- Consumer end----- > > [log;+0100 2011.01.14 > 18:39:27:542;INFO;org.eclipse.ecf.remoteservice;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.remoteservice;code=0;message=No > async remote service interface found with > name=devsosgi.simulator.IAtomicSimulatorAsync for proxy service > class=devsosgi.simulator.IAtomicSimulator;severity2;exception=null;children=[]]] > [log;+0100 2011.01.14 > 18:39:27:557;INFO;org.eclipse.ecf.remoteservice;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.remoteservice;code=0;message=No > async remote service interface found with > name=devsosgi.simulator.IAtomicSimulatorAsync for proxy service > class=devsosgi.simulator.IAtomicSimulator;severity2;exception=null;children=[]]] > [log;+0100 2011.01.14 > 18:39:29:973;ERROR;org.eclipse.ecf.osgi.services.distribution;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.distribution;code=4;message=org.eclipse.ecf.internal.osgi.services.distribution.DiscoveredServiceTrackerImpl:handleDiscoveredServiceAvailable:getRemoteServiceReferences > result is empty. containerHelper=RemoteServiceContainer > [containerID=r-osgi://jumper:9278, > container=org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer@1b8d4c9a, > containerAdapter=org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer@1b8d4c9a]remoteReferences=null;severity4;exception=null;children=[]]] > > ----- Provider end----- > > !ENTRY org.eclipse.osgi 4 0 2011-01-14 18:39:23.347 > !MESSAGE An unexpected runtime error has occurred. > !STACK 0 > java.lang.NullPointerException > at > ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl$3.modifiedService(RemoteOSGiServiceImpl.java:556) > at > org.osgi.util.tracker.ServiceTracker$Tracked.customizerModified(ServiceTracker.java:909) > at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:237) > at > org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:840) > at > org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104) > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:933) > at > org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) > at > org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) > at > org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:756) > at > org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:711) > at > org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:171) > at > org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:370) > at > org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:342) > at > org.eclipse.ecf.internal.osgi.services.distribution.EventHookImpl.handleRegisteredServiceEvent(EventHookImpl.java:126) > at > org.eclipse.ecf.internal.osgi.services.distribution.Activator.registerExistingServices(Activator.java:196) > at > org.eclipse.ecf.internal.osgi.services.distribution.Activator.access$0(Activator.java:187) > at > org.eclipse.ecf.internal.osgi.services.distribution.Activator$1.run(Activator.java:181) > at java.lang.Thread.run(Unknown Source) > > !ENTRY ch.ethz.iks.r_osgi.remote 4 0 2011-01-14 18:39:23.348 > !MESSAGE > !STACK 0 > java.lang.NullPointerException > at > ch.ethz.iks.r_osgi.impl.RemoteOSGiServiceImpl$3.modifiedService(RemoteOSGiServiceImpl.java:556) > at > org.osgi.util.tracker.ServiceTracker$Tracked.customizerModified(ServiceTracker.java:909) > at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:237) > at > org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:840) > at > org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:104) > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:933) > at > org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) > at > org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) > at > org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:756) > at > org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:711) > at > org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.setProperties(ServiceRegistrationImpl.java:171) > at > org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:370) > at > org.eclipse.ecf.internal.provider.r_osgi.R_OSGiRemoteServiceContainer.registerRemoteService(R_OSGiRemoteServiceContainer.java:342) > at > org.eclipse.ecf.internal.osgi.services.distribution.EventHookImpl.handleRegisteredServiceEvent(EventHookImpl.java:126) > at > org.eclipse.ecf.internal.osgi.services.distribution.Activator.registerExistingServices(Activator.java:196) > at > org.eclipse.ecf.internal.osgi.services.distribution.Activator.access$0(Activator.java:187) > at > org.eclipse.ecf.internal.osgi.services.distribution.Activator$1.run(Activator.java:181) > at java.lang.Thread.run(Unknown Source) > [log;+0100 2011.01.14 > 18:39:27:369;INFO;org.eclipse.ecf.osgi.services.discovery;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.discovery;code=1;message=serviceDiscovered:ignoring > loopback ServiceReference: > ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9279/svc_qmjBascz9BO4EwHO4/uSYij33dU=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9279/svc_qmjBascz9BO4EwHO4/uSYij33dU=];severity1;exception=null;children=[]]] > [14.01.2011 18:39:28][devsosgi.simulator.atomic.AtomicComponentTracker] INFO : > devsosgi.model.crossing.Crossing -> Atomic simulator created and registered. > [log;+0100 2011.01.14 > 18:39:29:972;INFO;org.eclipse.ecf.osgi.services.discovery;org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.discovery;code=1;message=serviceDiscovered:ignoring > loopback ServiceReference: > ServiceID[type=ServiceTypeID[typeName=_osgiservices._tcp.default._iana];location=osgiservices://192.168.0.104:9279/svc_0PPDnFHzpBeWvffGume2FweTrHk=;full=_osgiservices._tcp.default._iana@osgiservices://192.168.0.104:9279/svc_0PPDnFHzpBeWvffGume2FweTrHk=];severity1;exception=null;children=[]]] > > ----- Sometimes with this on provider end----- > > Exception in thread "r-OSGi ChannelWorkerThread0" > java.lang.NullPointerException > at > ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.populateLease(ChannelEndpointImpl.java:1383) > at > ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl.handleMessage(ChannelEndpointImpl.java:1025) > at > ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl$2.run(ChannelEndpointImpl.java:288) > at > ch.ethz.iks.r_osgi.impl.ChannelEndpointImpl$1.run(ChannelEndpointImpl.java:253) Please file a new bug and attach a test case.
Raised bug upstream too https://sourceforge.net/tracker/?func=detail&aid=3158437&group_id=158382&atid=807609