[
https://issues.apache.org/jira/browse/WW-5006?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16752016#comment-16752016
]
Sebastian Götz commented on WW-5006:
------------------------------------
+Possible workaround:+
When disallowing access to proxy members in the struts configuration e.g. via
struts.xml:
{{<constant name="*struts.disallowProxyMemberAccess*" value="false" />}}
the proxy check can be disabled and access is possible. But this introduces
other problems if someone uses spring IoT or something similar which is likely
to create proxies around the actual target (action) classes depending on its
configuration.
> NullPointerException in ProxyUtil class when accessing static member
> --------------------------------------------------------------------
>
> Key: WW-5006
> URL: https://issues.apache.org/jira/browse/WW-5006
> Project: Struts 2
> Issue Type: Bug
> Components: Value Stack
> Affects Versions: 2.5.20
> Reporter: Sebastian Götz
> Priority: Major
>
> In some JSP we access static field (constants) of an interface. The interface
> has scope public and and the fields are public static final.
> When accessing the value of such a field the ValueStack throws a
> NullPointerException here (com.opensymphony.xwork2.util.ProxyUtil), because
> there is actually not object (parameter holds null) when accessing a static
> member:
> {code:java}
> /**
> * Check whether the given object is a proxy.
> * @param object the object to check
> */
> public static boolean isProxy(Object object) {
> Class<?> clazz = object.getClass();
> Boolean flag = isProxyCache.get(clazz);
> if (flag != null) {
> return flag;
> }
> boolean isProxy = isSpringAopProxy(object);
> isProxyCache.put(clazz, isProxy);
> return isProxy;
> }
> {code}
>
> Support to access static members is switched on via struts constant
> {{<constant name="struts.ognl.allowStaticMethodAccess" value="true" />}}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)