| Subject: ECF r-osgi : NPEs in proxies during startup | Author: erwin de ley | Date: Fri, 20 May 2016 10:54 | 
	| When using the r_osgi provider (3.5.300.v20160405-1820), we always get NPEs from inside the generated proxies when starting the consumer application. 
 And then some time later the proxy gets in order.
 
 Does this ring a bell for someone?
 
 thanks!
 erwin & yannick
 
 Some detailed info :
 
 We have a service that implements 2 interfaces : an IRestService and an IDataSourceService. In the DS config we try to only export the IDataSourceService interface :
 
 
 
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="DataSourceService">
   <implementation class="com.isencia.passerelle.edm.datasource.service.impl.DataSourceService"/>
   <service>
      <provide interface="com.isencia.sherpa.rs.IRestService"/>
      <provide interface="com.isencia.passerelle.edm.datasource.service.IDataSourceService"/>
   </service>
   <property name="service.exported.interfaces" type="String" value="com.isencia.passerelle.edm.datasource.service.IDataSourceService"/>
   <property name="service.exported.configs" type="String" value="ecf.r_osgi.peer"/>
</scr:component>
 This seems to be picked up correctly for the r_osgi bundle :
 
 
 
osgi>services (objectClass="com.isencia.passerelle.edm.datasource.service.IDataSourceService")
{com.isencia.sherpa.rs.IRestService, com.isencia.passerelle.edm.datasource.service.IDataSourceService}={component.name=DataSourceService, component.id=58, service.exported.configs=ecf.r_osgi.peer, service.exported.interfaces=com.isencia.passerelle.edm.datasource.service.IDataSourceService, service.id=126}
  "Registered by bundle:" com.isencia.passerelle.edm.datasource.service.impl_3.0.5.qualifier [189]
  "Bundles using service"
    com.isencia.sherpa.rs_6.12.4.qualifier [71]
    org.eclipse.ecf.osgi.services.remoteserviceadmin_4.4.0.v20160405-1820 [123]
    org.eclipse.ecf.provider.r_osgi_3.5.300.v20160405-1820 [74]
{com.isencia.passerelle.edm.datasource.service.IDataSourceService}={component.name=DataSourceService, ecf.rsvc.id=155, ecf.rsvc.ranking=0, service.remote.registration=true, ecf.rsvc.cid=r-osgi://Yannick-PC:9278, ecf.robjectClass=[com.isencia.passerelle.edm.datasource.service.IDataSourceService], component.id=58, service.id=155}
  "Registered by bundle:" com.isencia.passerelle.edm.datasource.service.impl_3.0.5.qualifier [189]
  "Bundles using service"
    ch.ethz.iks.r_osgi.remote_1.0.5.RC1_v20160405-1820 [182]
 But during the startup we get NPEs in generated proxies for both interfaces :
 
 !SESSION 2016-05-12 10:24:53.779 -----------------------------------------------
 eclipse.buildId=unknown
 java.version=1.7.0_79
 java.vendor=Oracle Corporation
 BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB
 Framework arguments:  -product com.isencia.passerelle.edm.datasource.consumer.product
 Command-line arguments:  -product com.isencia.passerelle.edm.datasource.consumer.product -data C:\Users\visyan\workspace-passerelle-edm/../runtime-datasourceservice.consumer.ecf.local.product -dev file:C:/Users/visyan/workspace-passerelle-edm/.metadata/.plugins/org.eclipse.pde.core/datasourceservice.consumer.ecf.local.product/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog -console
 
 !ENTRY R-OSGi Proxy Bundle generated for Endpoint r-osgi://169.254.254.194:9278#218 4 0 2016-05-12 10:24:54.437
 !MESSAGE FrameworkEvent ERROR
 !STACK 0
 org.osgi.framework.BundleException: Exception in proxy.bgjocfeocfeobje_jchicbi.com.isencia.sherpa.rs.IRestServiceImpl.start() of bundle R-OSGi Proxy Bundle generated for Endpoint r-osgi://169.254.254.194:9278#218.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
 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.resume(AbstractBundle.java:390)
 at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
 at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
 at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
 Caused by: java.lang.NullPointerException: A null service reference is not allowed.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:586)
 at proxy.bgjocfeocfeobje_jchicbi.com.isencia.sherpa.rs.IRestServiceImpl.start(Unknown Source)
 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)
 ... 12 more
 Root exception:
 java.lang.NullPointerException: A null service reference is not allowed.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:586)
 at proxy.bgjocfeocfeobje_jchicbi.com.isencia.sherpa.rs.IRestServiceImpl.start(Unknown Source)
 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.resume(AbstractBundle.java:390)
 at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
 at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
 at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
 
 !ENTRY R-OSGi Proxy Bundle generated for Endpoint r-osgi://YANNICK-PC:9278#218 4 0 2016-05-12 10:24:54.440
 !MESSAGE FrameworkEvent ERROR
 !STACK 0
 org.osgi.framework.BundleException: Exception in proxy.YANNICK_PC_jchicbi.com.isencia.passerelle.edm.datasource.service.IDataSourceServiceImpl.start() of bundle R-OSGi Proxy Bundle generated for Endpoint r-osgi://YANNICK-PC:9278#218.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
 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.resume(AbstractBundle.java:390)
 at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
 at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
 at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
 Caused by: java.lang.NullPointerException: A null service reference is not allowed.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:586)
 at proxy.YANNICK_PC_jchicbi.com.isencia.passerelle.edm.datasource.service.IDataSourceServiceImpl.start(Unknown Source)
 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)
 ... 12 more
 Root exception:
 java.lang.NullPointerException: A null service reference is not allowed.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:586)
 at proxy.YANNICK_PC_jchicbi.com.isencia.passerelle.edm.datasource.service.IDataSourceServiceImpl.start(Unknown Source)
 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.resume(AbstractBundle.java:390)
 at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
 at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
 at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
 WARNING: Port 9278 already in use. This instance of R-OSGi is running on port 9279
 
 !ENTRY org.eclipse.equinox.ds 4 0 2016-05-12 10:24:55.186
 !MESSAGE Could not bind a reference of component com.isencia.passerelle.edm.datasource.consumer. The reference is: Reference[name = IDataSourceService, interface = com.isencia.passerelle.edm.datasource.service.IDataSourceService, policy = dynamic, cardinality = 0..n, target = null, bind = bindDataSourceService, unbind = null]
 
 !ENTRY org.eclipse.equinox.ds 4 0 2016-05-12 10:24:55.188
 !MESSAGE Could not bind a reference of component com.isencia.passerelle.edm.datasource.consumer. The reference is: Reference[name = IDataSourceService, interface = com.isencia.passerelle.edm.datasource.service.IDataSourceService, policy = dynamic, cardinality = 0..n, target = null, bind = bindDataSourceService, unbind = null]
 
 And then, after a minute or two, our consumer can start using the proxy after all to start pushing data (which is the thing our service allows) :
 
 
osgi> 2016-05-12 10:26:41 INFO  DataSourceServiceComponent:27 - Got proxy IDataSourceService=proxy.Yannick_PC_jchibff.com.isencia.passerelle.edm.datasource.service.IDataSourceServiceImpl@5abcfadd
2016-05-12 10:26:41 INFO  DataSourceServiceComponent:29 - Starting remote call via proxy...
2016-05-12 10:26:41 INFO  DataSourceServiceComponent:44 - Published value1: 72
 | 
	| [ Reply ][ Quote ][ View Topic/Message ][ Unsubscribe from this forum ] |