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


Reply via email to