You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Brendan Le Ny (JIRA)" <ji...@apache.org> on 2014/11/25 12:12:12 UTC

[jira] [Created] (WW-4424) When a property doesn't exists, the log warn message always misses information

Brendan Le Ny created WW-4424:
---------------------------------

             Summary: When a property doesn't exists, the log warn message always misses information
                 Key: WW-4424
                 URL: https://issues.apache.org/jira/browse/WW-4424
             Project: Struts 2
          Issue Type: Bug
          Components: Value Stack
    Affects Versions: 2.3.16.3
            Reporter: Brendan Le Ny
            Priority: Trivial


As a developer, I write long JSPs and sometimes I make mistakes. For example, i can write the line underneath:

<s:if test="ghamRestitution.moraHalfFoodFree" >

if the the field "moraHalfFoodFree" doesn't exists on bean "ghamRestitution", XWork raise a warn such as:

2014/11/25 11:45:08  WARN (CommonsLogger.java:56) warn Could not find property [null]

The problem is that the message always say "Count not find property [null]" and it's very hard for the developer to know where the bug is in a long JSP.

The problem come from com.opensymphony.xwork2.ognl.OgnlValueStack#handleOgnlException

    private Object handleOgnlException(String expr, boolean throwExceptionOnFailure, OgnlException e) {
        Object ret = findInContext(expr);
        if (ret == null) {
            if (shouldLogMissingPropertyWarning(e)) {
                LOG.warn("Could not find property [" + ((NoSuchPropertyException) e).getName() + "]");
            }
            if (throwExceptionOnFailure) {
                throw new XWorkException(e);
            }
        }
        return ret;
    }

((NoSuchPropertyException) e).getName() always returns null, instead we should use expr parameter which give the right information.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)