Methods with concerns not working
---------------------------------
Key: QI-252
URL: http://issues.ops4j.org/browse/QI-252
Project: Qi4j
Issue Type: Bug
Components: Core Runtime
Affects Versions: 1.1
Environment: Any.
Reporter: Stanislav Muhametsin
Assignee: Rickard Öberg
I have a role, let's say "org.mypackage.Activatable" with methods "activate()"
and "passivate()". I then have some composite, let's say
"org.myanotherpackage.Area", which extends the org.mypackage.Activatable.
Additionally, I also have a concern, "org.mypackage.ActivatableConcern", which
then overrides the methods "activate()" and "passivate()". Finally, I have
"org.yetanotherpackage.AreaTransient", which extends the
org.myanotherpackage.Area and TransientComposite, and has the @Mixins and
@Concerns declarations.
I then call "area.activate()" in the app, and get the following error:
{noformat}
java.lang.NoSuchMethodException:
org.mypackage.ActivatableConcern_Stub._activate()
at java.lang.Class.getMethod(Class.java:1605)
at
org.qi4j.runtime.composite.AbstractModifierModel.newInstance(AbstractModifierModel.java:122)
at
org.qi4j.runtime.composite.MethodConcernsModel.newInstance(MethodConcernsModel.java:100)
at
org.qi4j.runtime.composite.CompositeMethodModel.newCompositeMethodInstance(CompositeMethodModel.java:184)
at
org.qi4j.runtime.composite.CompositeMethodModel.getInstance(CompositeMethodModel.java:171)
at
org.qi4j.runtime.composite.CompositeMethodModel.invoke(CompositeMethodModel.java:155)
at
org.qi4j.runtime.composite.CompositeMethodsModel.invoke(CompositeMethodsModel.java:123)
at
org.qi4j.runtime.composite.AbstractCompositeModel.invoke(AbstractCompositeModel.java:122)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:62)
at $Proxy44.activate(Unknown Source)
{noformat}
Additionally, if I call another concern-ed method again later, I get:
{noformat}
org.qi4j.api.common.ConstructionException: Could not find modifier method
at
org.qi4j.runtime.composite.AbstractModifierModel.newInstance(AbstractModifierModel.java:129)
at
org.qi4j.runtime.composite.MethodConcernsModel.newInstance(MethodConcernsModel.java:100)
at
org.qi4j.runtime.composite.CompositeMethodModel.newCompositeMethodInstance(CompositeMethodModel.java:184)
at
org.qi4j.runtime.composite.CompositeMethodModel.getInstance(CompositeMethodModel.java:171)
at
org.qi4j.runtime.composite.CompositeMethodModel.invoke(CompositeMethodModel.java:155)
at
org.qi4j.runtime.composite.CompositeMethodsModel.invoke(CompositeMethodsModel.java:123)
at
org.qi4j.runtime.composite.AbstractCompositeModel.invoke(AbstractCompositeModel.java:122)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:62)
at $Proxy44.passivate(Unknown Source)
{noformat}
Also, if I remove the ActivatableConcern from the @Concers-list, I get the
following error:
{noformat}
java.lang.NoSuchMethodException:
org.mypackage.ActivatableProxyMixin_Stub._activate()
at java.lang.Class.getMethod(Class.java:1605)
at
org.qi4j.runtime.composite.CompositeMethodModel.newCompositeMethodInstance(CompositeMethodModel.java:200)
at
org.qi4j.runtime.composite.CompositeMethodModel.getInstance(CompositeMethodModel.java:171)
at
org.qi4j.runtime.composite.CompositeMethodModel.invoke(CompositeMethodModel.java:155)
at
org.qi4j.runtime.composite.CompositeMethodsModel.invoke(CompositeMethodsModel.java:123)
at
org.qi4j.runtime.composite.AbstractCompositeModel.invoke(AbstractCompositeModel.java:122)
at
org.qi4j.runtime.composite.TransientInstance.invoke(TransientInstance.java:62)
at $Proxy44.activate(Unknown Source)
{noformat}
My concern code is like this:
{code:title=ActivatableConcern.java}
public abstract class ActivatableConcern extends ConcernOf<Activatable>
implements Activatable
{
@This private ActivatableImmutableQuery _immutableQuery;
@Override
public void activate()
{
if (!this._immutableQuery.isActive())
{
this.next.activate();
}
}
@Override
public void passivate()
{
if (this._immutableQuery.isActive())
{
this.next.passivate();
}
}
}
{code}
--
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