[ https://issues.apache.org/jira/browse/FELIX-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Clement Escoffier resolved FELIX-649. ------------------------------------- Resolution: Fixed Nice catch ! The issue comes from the super constructor arguments that were not loaded. This corrupts the class, as the super constructor cannot be called (linked) correctly. I commit a fix in the trunk version (revision 680406). I also add your test case in my test suite. > "Expecting to find object/array on stack" Error when asking for instance of > an iPOJO component > ---------------------------------------------------------------------------------------------- > > Key: FELIX-649 > URL: https://issues.apache.org/jira/browse/FELIX-649 > Project: Felix > Issue Type: Bug > Components: iPOJO > Affects Versions: iPOJO-0.8.0 > Environment: iPOJO 0.8.0 > felix 1.0.3 > Reporter: Benjamin Strappazzon > Assignee: Clement Escoffier > > Here is my case, I have these two classes in a bundle > public class A { > private String name; > public A(final String n) { > name = n; > } > } > public class B extends A { > public B() { > super("test"); > System.out.println("plop"); > } > } > What I want to do is to create a component with class B and ask for an > instance, this is the content of metadata.xml : > <iPOJO> > <component className="myPackage.B" immediate="true" factory="false"> > </component> > <instance component="myPackage.B" name="b"></instance> > </iPOJO> > When I try to install this bundle on a felix gateway I get the following > error : > ERROR: EventDispatcher: Error during dispatch. (java.lang.VerifyError: > (class: org/ow2/shelbie/cli/B, method: <init> signature: > (Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to find object/array > on stack) > java.lang.VerifyError: (class: org/ow2/shelbie/cli/B, method: <init> > signature: (Lorg/apache/felix/ipojo/InstanceManager;)V) Expecting to find > object/array on stack > at java.lang.Class.getDeclaredConstructors0(Native Method) > at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) > at java.lang.Class.getConstructor0(Class.java:2671) > at java.lang.Class.getDeclaredConstructor(Class.java:1953) > at > org.apache.felix.ipojo.InstanceManager.createPojoObject(InstanceManager.java:538) > at > org.apache.felix.ipojo.InstanceManager.getPojoObject(InstanceManager.java:698) > at > org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.__stateChanged(LifecycleCallbackHandler.java:157) > at > org.apache.felix.ipojo.handlers.lifecycle.callback.LifecycleCallbackHandler.stateChanged(LifecycleCallbackHandler.java) > at > org.apache.felix.ipojo.InstanceManager.setState(InstanceManager.java:409) > at > org.apache.felix.ipojo.InstanceManager.start(InstanceManager.java:299) > at > org.apache.felix.ipojo.ComponentFactory.createInstance(ComponentFactory.java:146) > at > org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:250) > at > org.apache.felix.ipojo.IPojoFactory.createComponentInstance(IPojoFactory.java:194) > at > org.apache.felix.ipojo.InstanceCreator$ManagedInstance.create(InstanceCreator.java:316) > at > org.apache.felix.ipojo.InstanceCreator.addInstance(InstanceCreator.java:76) > at org.apache.felix.ipojo.Extender.parse(Extender.java:238) > at org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:180) > at org.apache.felix.ipojo.Extender.bundleChanged(Extender.java:101) > at > org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:690) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:619) > at > org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:532) > at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3568) > at org.apache.felix.framework.Felix._startBundle(Felix.java:1591) > at org.apache.felix.framework.Felix.startBundle(Felix.java:1519) > at > org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:1104) > at > org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:258) > at java.lang.Thread.run(Thread.java:595) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.