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]