[
https://issues.apache.org/jira/browse/VELOCITY-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12905558#action_12905558
]
Nathan Bubna commented on VELOCITY-761:
---------------------------------------
Wait, i missed something. What parts of a non-public class does Velocity make
accessible? It should not do that, as far as i can tell. The goal has always
been only public methods declared in public classes.
> 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]