You are viewing a plain text version of this content. The canonical link for it is here.
Posted to imperius-dev@incubator.apache.org by "Reza Asadollahi (JIRA)" <ji...@apache.org> on 2008/09/03 00:31:44 UTC

[jira] Commented: (IMPERIUS-18) Failure to find the proper method of the anchor object during policy execution

    [ https://issues.apache.org/jira/browse/IMPERIUS-18?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12627865#action_12627865 ] 

Reza Asadollahi commented on IMPERIUS-18:
-----------------------------------------

In the latest version of Imperius I don't see the problem. 

However, I fixed the problem of re-throwing exceptions in some places and provided patch for them. I added two other constructors to SPLException to accept the root exception. In places that a SPLException was created as the result of another exception I used the new constructors instead of the previous one. More investigation in the code is needed to fix this issue completely, particularly the classes in org.apache.imperius.spl.parser.expressions.impl package that deal with exceptions. 

Another point that needs more attention is AnchorMethodInvokeAction.execute method. This method catches SPLException and does nothing. The signature of this method must be changed to throw SPLException. I wasn't sure if this change is ok.
What do you think?
 

> Failure to find the proper method of the anchor object during policy execution
> ------------------------------------------------------------------------------
>
>                 Key: IMPERIUS-18
>                 URL: https://issues.apache.org/jira/browse/IMPERIUS-18
>             Project: Imperius
>          Issue Type: Bug
>            Reporter: Reza Asadollahi
>            Assignee: Bill Stoddard
>            Priority: Critical
>
> An anchor object has a method named foo with the following signature:
>      public void foo(Object o)
> if this method is used in a SPL policy as foo("test"), the policy will fail to execute with the following exception since it looks for method foo(java.lang.String) and can not find it. 
> org.apache.imperius.spl.parser.exceptions.SPLException: org.starmx.MyClass.foo(java.lang.String)
> 	at org.apache.imperius.javaspl.JavaActuatorImpl.invokeMethod(JavaActuatorImpl.java:115)
> 	at org.apache.imperius.spl.parser.statements.actions.impl.AnchorMethodInvokeAction.invokeClassMethod(AnchorMethodInvokeAction.java:362)
> 	at org.apache.imperius.spl.parser.compiler.IdentPrimaryTuple.evaluate(IdentPrimaryTuple.java:152)
> 	at org.apache.imperius.spl.parser.statements.actions.impl.AnchorMethodInvokeAction.execute(AnchorMethodInvokeAction.java:170)
> 	at org.apache.imperius.spl.parser.statements.impl.PolicyDefinition.evaluate(PolicyDefinition.java:224)
> 	at org.apache.imperius.spl.parser.statements.impl.SPLPolicy._evaluatePolicies(SPLPolicy.java:151)
> 	at org.apache.imperius.spl.parser.statements.impl.SPLPolicy.evaluate(SPLPolicy.java:362)
> 	at org.apache.imperius.spl.evaluator.impl.PolicyEvaluatorImpl.evaluatePolicy(PolicyEvaluatorImpl.java:118)
> 	at org.apache.imperius.spl.manager.impl.PolicyManagerImpl.evaluatePolicy(PolicyManagerImpl.java:209)
> 	at org.apache.imperius.javaspl.Java_SPLPolicyRuleProvider.executePolicy(Java_SPLPolicyRuleProvider.java:134)
> This is a serious problem since it doesn't allow to call any method that has the super class of the real parameter in its signature. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.