incubator-imperius-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Reza Asadollahi (JIRA)" <>
Subject [jira] Commented: (IMPERIUS-18) Failure to find the proper method of the anchor object during policy execution
Date Wed, 03 Sep 2008 00:31:44 GMT


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:
>             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
> org.apache.imperius.spl.parser.exceptions.SPLException:
> 	at org.apache.imperius.javaspl.JavaActuatorImpl.invokeMethod(
> 	at org.apache.imperius.spl.parser.statements.actions.impl.AnchorMethodInvokeAction.invokeClassMethod(
> 	at org.apache.imperius.spl.parser.compiler.IdentPrimaryTuple.evaluate(
> 	at org.apache.imperius.spl.parser.statements.actions.impl.AnchorMethodInvokeAction.execute(
> 	at org.apache.imperius.spl.parser.statements.impl.PolicyDefinition.evaluate(
> 	at org.apache.imperius.spl.parser.statements.impl.SPLPolicy._evaluatePolicies(
> 	at org.apache.imperius.spl.parser.statements.impl.SPLPolicy.evaluate(
> 	at org.apache.imperius.spl.evaluator.impl.PolicyEvaluatorImpl.evaluatePolicy(
> 	at org.apache.imperius.spl.manager.impl.PolicyManagerImpl.evaluatePolicy(
> 	at org.apache.imperius.javaspl.Java_SPLPolicyRuleProvider.executePolicy(
> 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.

View raw message