[
https://issues.apache.org/jira/browse/VELOCITY-579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552867
]
Nathan Bubna commented on VELOCITY-579:
---------------------------------------
Yeah, this isn't clear to me either. Was this something that worked in
Velocity 1.4 and stopped working in 1.5?
It sounds related to the discussion and fixes that happened in VELTOOLS-66.
Like maybe the changes made due to that bug report are what led to this?
It's just odd that this led to an IllegalAccessException if the public methods
in question were not declared in either a public class or a public interface,
then Velocity shouldn't have acknowledged them at all (i think), so that it
would never try to call them and end up with an IllegalAccessException. Or
maybe i don't understand the problem?
Can you recreate the problem in small example that we could try out?
> Can not access a member of class X with modifiers "public" even if method is
> public
> -----------------------------------------------------------------------------------
>
> Key: VELOCITY-579
> URL: https://issues.apache.org/jira/browse/VELOCITY-579
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.5
> Reporter: Eric Ballet Baz
> Priority: Blocker
>
> When upgrading from 1.4 to 1.5 none of my template is working anymore.
> For example :
> [javadoc] ERROR [console:logVelocityMessage] - ASTMethod.execute() :
> exception invoking method 'tags' in class com.sun.tools.javadoc.MethodDocImpl
> [javadoc] ERROR [console:logVelocityMessage] -
> java.lang.IllegalAccessException: Class
> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl can not
> access a member of class com.sun.tools.javadoc.DocImpl with modifiers "public"
> The method 'tags()' is public in com.sun.javadoc.Doc, but the implementation
> is package protected. So the java.lang.reflect.Method object is well returned
> by the org.apache.velocity.util.introspection.Introspector but not accessible
> from templates.
> The same errors occured for example for javax.servlet.http.HttpSession
> Weblogic's implementation which is not public, but methods are !
> It's not possible to wrap all objects javax.servlet.http.HttpSession into
> public implementations ...
> The Introspector could call method.setAccessible(true) before returning
> Method object : if this method has been found, it is a public method !
--
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]