You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Nicolas A. Barriga (JIRA)" <ji...@apache.org> on 2011/03/01 01:53:36 UTC

[jira] Commented: (FELIX-2430) IPOJO manipulation (ant task) results in invalid classes throwing java.lang.VerifyError at runtime in InstanceManager (line 584)

    [ https://issues.apache.org/jira/browse/FELIX-2430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13000634#comment-13000634 ] 

Nicolas A. Barriga commented on FELIX-2430:
-------------------------------------------

This patch doesn't seem to work when the class hierarchy is deeper. When doing the recursion, it doesn't check for superclass constructors correctly more than one level of inheritance.

> 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.4.0, iPOJO-1.6.0
>            Reporter: Frederic Desmons
>            Assignee: Clement Escoffier
>             Fix For: iPOJO-1.8.0
>
>         Attachments: ipojo-2430-verify_error.zip
>
>
> 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;
> public interface SecurityErrorRaisingIPOJOServiceInterface
> {
> }
> package ipojo;
> import org.apache.felix.ipojo.annotations.Component;
> import org.apache.felix.ipojo.annotations.Provides;
> @Component(immediate = true)
> @Provides(specifications = SecurityErrorRaisingIPOJOServiceInterface.class)
> public class SecurityErrorRaisingIPOJOService extends AbstractSecurityErrorRaisingIPOJOService
> {
>     public SecurityErrorRaisingIPOJOService()
>     {
>         super(new HelloWorldObject());
>     }
> }

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira