ClassCastException when using services as dynamic proxies
---------------------------------------------------------
Key: FELIX-552
URL: https://issues.apache.org/jira/browse/FELIX-552
Project: Felix
Issue Type: Improvement
Components: iPOJO
Environment: Sun HotSpot JVM 1.6.0u4 + JOnAS 5.0.1
Reporter: Kiev Gama
Priority: Minor
In a changed OSGi implementation that uses dynamic proxies for services, iPOJO
presents a typecast error.
iPOJO's implementation seems to rely on a service instance of
org.apache.felix.ipojo.HandlerFactory, but actually in this particular OSGi
customization that service is dynamically replaced by a proxied service which
implements org.apache.felix.ipojo.Factory.
java.lang.ClassCastException: $Proxy4 cannot be cast to
org.apache.felix.ipojo.HandlerFactory
at
org.apache.felix.ipojo.ComponentFactory$HandlerIdentifier.getFactory(ComponentFactory.java:964)
at
org.apache.felix.ipojo.HandlerFactory.getHandlerInstance(HandlerFactory.java:331)
at
org.apache.felix.ipojo.HandlerFactory.computeFactoryState(HandlerFactory.java:219)
at
org.apache.felix.ipojo.ComponentFactory.addedService(ComponentFactory.java:220)
at
org.apache.felix.ipojo.util.Tracker$Tracked.trackAdding(Tracker.java:667)
at
org.apache.felix.ipojo.util.Tracker$Tracked.trackInitialServices(Tracker.java:560)
at org.apache.felix.ipojo.util.Tracker.open(Tracker.java:195)
at org.apache.felix.ipojo.HandlerFactory.start(HandlerFactory.java:131)
at org.apache.felix.ipojo.Extender.start(Extender.java:243)
at org.apache.felix.ipojo.Extender.parse(Extender.java:147)
at org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:123)
at org.apache.felix.ipojo.Extender.start(Extender.java:163)
at
org.apache.felix.framework.util.SecureAction$Actions.start_aroundBody0(SecureAction.java:853)
at
org.apache.felix.framework.util.SecureAction$Actions.start_aroundBody1$advice(SecureAction.java:168)
at
org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:853)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:580)
at org.apache.felix.framework.Felix._startBundle(Felix.java:1568)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1502)
at
org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:1097)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:258)
at java.lang.Thread.run(Thread.java:619)
ERROR: Error starting
file:/C:/Java/jonas-osgi-5.0.1/lib/bundles/org.apache.felix.ipojo-0.7.5-2008.01.28.jar
(org.osgi.framework.BundleException: Activator start error.)
java.lang.ClassCastException: $Proxy4 cannot be cast to
org.apache.felix.ipojo.HandlerFactory
at
org.apache.felix.ipojo.ComponentFactory$HandlerIdentifier.getFactory(ComponentFactory.java:964)
at
org.apache.felix.ipojo.HandlerFactory.getHandlerInstance(HandlerFactory.java:331)
at
org.apache.felix.ipojo.HandlerFactory.computeFactoryState(HandlerFactory.java:219)
at
org.apache.felix.ipojo.ComponentFactory.addedService(ComponentFactory.java:220)
at
org.apache.felix.ipojo.util.Tracker$Tracked.trackAdding(Tracker.java:667)
at
org.apache.felix.ipojo.util.Tracker$Tracked.trackInitialServices(Tracker.java:560)
at org.apache.felix.ipojo.util.Tracker.open(Tracker.java:195)
at org.apache.felix.ipojo.HandlerFactory.start(HandlerFactory.java:131)
at org.apache.felix.ipojo.Extender.start(Extender.java:243)
at org.apache.felix.ipojo.Extender.parse(Extender.java:147)
at org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:123)
at org.apache.felix.ipojo.Extender.start(Extender.java:163)
at
org.apache.felix.framework.util.SecureAction$Actions.start_aroundBody0(SecureAction.java:853)
at
org.apache.felix.framework.util.SecureAction$Actions.start_aroundBody1$advice(SecureAction.java:168)
at
org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:853)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:580)
at org.apache.felix.framework.Felix._startBundle(Felix.java:1568)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1502)
at
org.apache.felix.framework.Felix.setFrameworkStartLevel(Felix.java:1097)
at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:258)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.