[
http://issues.ops4j.org/browse/QI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288#action_13288
]
Niclas Hedhman commented on QI-230:
-----------------------------------
And it is still the same here...
As it is written above; No Exception.
By moving the 2 comments I get the following (with -Dqi4j.compacttrace=off);
java.lang.ClassCastException: $Proxy18
at
org.qi4j.tests.jira.qi230.Qi230IssueTest$OtherConcern.other(Qi230IssueTest.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
org.qi4j.runtime.composite.TypedModifierInvocationHandler.invoke(TypedModifierInvocationHandler.java:39)
at
org.qi4j.runtime.composite.MethodConcernsInstance.invoke(MethodConcernsInstance.java:48)
at
org.qi4j.runtime.composite.CompositeMethodInstance.invoke(CompositeMethodInstance.java:59)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:129)
at
org.qi4j.runtime.composite.CompositeMethodModel.invoke(CompositeMethodModel.java:148)
at
org.qi4j.runtime.composite.CompositeMethodsModel.invoke(CompositeMethodsModel.java:113)
at
org.qi4j.runtime.composite.AbstractCompositeModel.invoke(AbstractCompositeModel.java:115)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:58)
at $Proxy18.other(Unknown Source)
at
org.qi4j.tests.jira.qi230.Qi230IssueTest$SomeMixin.method(Qi230IssueTest.java:107)
at
org.qi4j.tests.jira.qi230.Qi230IssueTest$SomeMixin$$EnhancerByCGLIB$$3ba706a0.CGLIB$method$0(<generated>)
at
org.qi4j.tests.jira.qi230.Qi230IssueTest$SomeMixin$$EnhancerByCGLIB$$3ba706a0$$FastClassByCGLIB$$3b49f78f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:167)
at
org.qi4j.runtime.composite.TypedMixinInvocationHandler.invoke(TypedMixinInvocationHandler.java:40)
at
org.qi4j.runtime.composite.CompositeMethodInstance.invoke(CompositeMethodInstance.java:59)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:129)
at
org.qi4j.runtime.composite.CompositeMethodModel.invoke(CompositeMethodModel.java:148)
at
org.qi4j.runtime.composite.CompositeMethodsModel.invoke(CompositeMethodsModel.java:113)
at
org.qi4j.runtime.composite.AbstractCompositeModel.invoke(AbstractCompositeModel.java:115)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:58)
at
org.qi4j.runtime.service.ServiceReferenceInstance$ServiceInvocationHandler.invoke(ServiceReferenceInstance.java:156)
at $Proxy16.method(Unknown Source)
at
org.qi4j.tests.jira.qi230.Qi230IssueTest.whenDerefencingInsideConcernThisExpectItToWork(Qi230IssueTest.java:53)
> Qi4j.dereference() does not work inside Concerns/SideEffects, if Concern
> added withConcerns() in bootstrap.
> -----------------------------------------------------------------------------------------------------------
>
> Key: QI-230
> URL: http://issues.ops4j.org/browse/QI-230
> Project: Qi4j
> Issue Type: Bug
> Reporter: Niclas Hedhman
> Assignee: Rickard Öberg
> Fix For: 1.0
>
>
> If I add a Concern with ServiceDeclaration.withConcerns() and dereferences
> the Composite pointer inside that Concern with Qi4j.dereference(), then a
> ClassCastException happens on the following line;
> class Qi4jRuntimeImpl
> {code:java}
> public <T> T dereference( T composite )
> {
> InvocationHandler handler = getInvocationHandler( composite );
> if( handler instanceof ProxyReferenceInvocationHandler )
> {
> return (T) ( (ProxyReferenceInvocationHandler) handler ).proxy();
> <--- HERE
> }
> if( handler instanceof CompositeInstance )
> {
> return composite;
> }
> return null;
> }
> {code}
> Because the ProxyReferenceInvocationHandler.proxy is not a Composite, but a
> $Proxy that can not be cast to a Composite.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.ops4j.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev