You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Clement Escoffier (JIRA)" <ji...@apache.org> on 2008/07/28 19:23:31 UTC
[jira] Resolved: (FELIX-649) "Expecting to find object/array on
stack" Error when asking for instance of an iPOJO component
[ 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.