struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastian Götz (JIRA) <j...@apache.org>
Subject [jira] [Commented] (WW-5006) NullPointerException in ProxyUtil class when accessing static member
Date Fri, 25 Jan 2019 08:17:00 GMT

    [ 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)

Mime
View raw message