IPOJO manipulation (ant task) results in invalid classes throwing 
java.lang.VerifyError at runtime in InstanceManager (line 584)
--------------------------------------------------------------------------------------------------------------------------------

                 Key: FELIX-2430
                 URL: https://issues.apache.org/jira/browse/FELIX-2430
             Project: Felix
          Issue Type: Bug
          Components: iPOJO
    Affects Versions: iPOJO-1.6.0, iPOJO-1.4.0
            Reporter: Frederic Desmons


Logs:

[ERROR] ipojo.SecurityErrorRaisingIPOJOService : 
[ipojo.SecurityErrorRaisingIPOJOService-0] createInstance -> The POJO 
constructor invocation failed : (class: ipojo/SecurityErrorRaisingIPOJOService, 
method: <init> signature: (Lorg/apache/felix/ipojo/InstanceManager;)V) 
Expecting to find object/array on stack
java.lang.VerifyError: (class: ipojo/SecurityErrorRaisingIPOJOService, method: 
<init> signature: (Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to 
find object/array on stack caught here: 
java.lang.Class.getDeclaredConstructors0(Native Method) 
java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
java.lang.Class.getConstructor0(Unknown Source) 
java.lang.Class.getDeclaredConstructor(Unknown Source) 
org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:584) 
org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:777) 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:156)
 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)
 org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:441) 
org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:322) 
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:155)
 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:301)
 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238)
 
org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCreator.java:343)
 org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:89) 
org.apache.felix.ipojo.Extender.parse(Extender.java:269) 
org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:208) 
org.apache.felix.ipojo.Extender.access$600(Extender.java:52) 
org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:682) 
java.lang.Thread.run(Unknown Source)
[ERROR] ipojo.SecurityErrorRaisingIPOJOService : Cannot create a POJO instance, 
the POJO constructor invocation has thrown an exception : (class: 
ipojo/SecurityErrorRaisingIPOJOService, method: <init> signature: 
(Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to find object/array on 
stack
java.lang.RuntimeException: Cannot create a POJO instance, the POJO constructor 
invocation has thrown an exception : (class: 
ipojo/SecurityErrorRaisingIPOJOService, method: <init> signature: 
(Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to find object/array on 
stack caught here: 
org.apache.felix.ipojo.InstanceManager.createObject(InstanceManager.java:640) 
org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:777) 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:156)
 
org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java)
 org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:441) 
org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:322) 
org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:155)
 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:301)
 
org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:238)
 
org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCreator.java:343)
 org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:89) 
org.apache.felix.ipojo.Extender.parse(Extender.java:269) 
org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:208) 
org.apache.felix.ipojo.Extender.access$600(Extender.java:52) 
org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:682) 
java.lang.Thread.run(Unknown Source)
[ERROR] ipojo.SecurityErrorRaisingIPOJOService : Cannot create a POJO instance, 
the POJO constructor invocation has thrown an exception : (class: 
ipojo/SecurityErrorRaisingIPOJOService, method: <init> signature: 
(Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to find object/array on 
stack
[ERROR] iPOJO Instance Creator : A matching factory was found for 
{component=ipojo.SecurityErrorRaisingIPOJOService, 
instance.name=ipojo.SecurityErrorRaisingIPOJOService-0}, but the instantiation 
failed : The configuration is not correct for the type 
ipojo.SecurityErrorRaisingIPOJOService : Cannot create a POJO instance, the 
POJO constructor invocation has thrown an exception : (class: 
ipojo/SecurityErrorRaisingIPOJOService, method: <init> signature: 
(Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to find object/array on 
stack

Samples used for reproducing the error:

package ipojo;

public class AbstractSecurityErrorRaisingIPOJOService
{
    protected HelloWorldObject helloWorldObject;

    protected AbstractSecurityErrorRaisingIPOJOService(HelloWorldObject 
helloWorldObject)
    {
        this.helloWorldObject = helloWorldObject;
    }
}

package ipojo;

public class HelloWorldObject
{
    public HelloWorldObject()
    {

    }
}

package ipojo;

import org.apache.felix.ipojo.annotations.Component;
import org.apache.felix.ipojo.annotations.Provides;

import com.ullink.oms.extensions.actionprocessor.interfaces.ActionProcessor;

@Component(immediate = true)
@Provides(specifications = ActionProcessor.class)
public class SecurityErrorRaisingIPOJOService extends 
AbstractSecurityErrorRaisingIPOJOService
{
    public SecurityErrorRaisingIPOJOService()
    {
        super(new HelloWorldObject());
    }
}


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to