Error when calling BundleContext.register(Class, Object, Dictionary) --------------------------------------------------------------------
Key: FELIX-3172 URL: https://issues.apache.org/jira/browse/FELIX-3172 Project: Felix Issue Type: Bug Components: iPOJO Affects Versions: iPOJO-1.8.0 Environment: Java 1.6, Apache Felix 4.0.1 Reporter: François Fornaciari I have an error when I try to call the simple BundleContext.register(Class, Object, Dictionary) method (note the type of the first argument). It seems that the new signature of the BundleContext.register() method is not recognised by the IPojoContext. This simple example reproduces the issue: @Component @Instantiate public class Test{ public Test(BundleContext bundleContext) { bundleContext.registerService(String.class, "test", null); } } With the following trace: g! [ERROR] : [com.fornacif.osgi.manager.internal.Manager-0] createInstance -> Cannot invoke the constructor method - the constructor throws an except ion : org.apache.felix.ipojo.IPojoContext.registerService(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi/framework/ServiceRegistr ation; java.lang.AbstractMethodError: org.apache.felix.ipojo.IPojoContext.registerService(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi /framework/ServiceRegistration; at com.fornacif.osgi.manager.internal.Manager.<init>(Manager.java:12) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:656) at org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:844) at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:156) at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java) at org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:471) at org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:353) at org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:166) at org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:301) at org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238) at org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCreator.java:343) at org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:89) at org.apache.felix.ipojo.Extender.parse(Extender.java:269) at org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:208) at org.apache.felix.ipojo.Extender.access$600(Extender.java:52) at org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:682) at java.lang.Thread.run(Unknown Source) [ERROR] com.fornacif.osgi.manager.internal.Manager : Cannot create a POJO instance, the POJO constructor has thrown an exception: org.apache.felix.ipo jo.IPojoContext.registerService(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi/framework/ServiceRegistration; java.lang.RuntimeException: Cannot create a POJO instance, the POJO constructor has thrown an exception: org.apache.felix.ipojo.IPojoContext.registerS ervice(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi/framework/ServiceRegistration; at org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:696) at org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:844) at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:156) at org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java) at org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:471) at org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:353) at org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:166) at org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:301) at org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238) at org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCreator.java:343) at org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:89) at org.apache.felix.ipojo.Extender.parse(Extender.java:269) at org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:208) at org.apache.felix.ipojo.Extender.access$600(Extender.java:52) at org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:682) at java.lang.Thread.run(Unknown Source) [ERROR] com.fornacif.osgi.manager.internal.Manager : Cannot create a POJO instance, the POJO constructor has thrown an exception: org.apache.felix.ipo jo.IPojoContext.registerService(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi/framework/ServiceRegistration; [ERROR] iPOJO Instance Creator : A matching factory was found for {component=com.fornacif.osgi.manager.internal.Manager, instance.name=com.fornacif.os gi.manager.internal.Manager-0}, but the instantiation failed : The configuration is not correct for the type com.fornacif.osgi.manager.internal.Manage r : Cannot create a POJO instance, the POJO constructor has thrown an exception: org.apache.felix.ipojo.IPojoContext.registerService(Ljava/lang/Class; Ljava/lang/Object;Ljava/util/Dictionary;)Lorg/osgi/framework/ServiceRegistration; -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira