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