[ 
https://issues.apache.org/jira/browse/VELOCITY-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12866951#action_12866951
 ] 

Matt Ryall commented on VELOCITY-761:
-------------------------------------

To avoid a whole class of bugs in this area, you could consider using a utility 
that has well-tested functionality for class introspection like [MethodUtils in 
Commons 
BeanUtils|http://commons.apache.org/beanutils/apidocs/org/apache/commons/beanutils/MethodUtils.html#invokeMethod%28java.lang.Object,%20java.lang.String,%20java.lang.Object%29].


> Can not reference a property declared in a super-interface and implemented in 
> a non-public class
> ------------------------------------------------------------------------------------------------
>
>                 Key: VELOCITY-761
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-761
>             Project: Velocity
>          Issue Type: Bug
>          Components: Engine
>    Affects Versions: 1.6.3
>            Reporter: Charles Miller
>
> Consider the following:
> public interface MyUser extends java.security.Principal { 
>      String getEmailAddress();
>  }
> class MyUserImpl implements MyUser {
>     public String getName() { ... }
>     public String getEmailAddress() { ... }
> }
> If I put a MyUserImpl in my Velocity context, $user.emailAddress will 
> resolve, but $user.name will not.
> This is a problem with ClassMap#createMethodCache(). It ignores methods 
> declared on the MyUserImpl class because the class is non-public, and it only 
> looks up one level in the Interface hierarchy for methods defined on 
> interfaces: so it will go up as far as the MyUser interface but not as far as 
> the Principal interface.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to