You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Yan Soulliaert (JIRA)" <ji...@apache.org> on 2016/07/20 10:06:21 UTC

[jira] [Created] (WW-4663) NullPointerException when displaying a form without action attribute

Yan Soulliaert created WW-4663:
----------------------------------

             Summary: NullPointerException when displaying a form without action attribute
                 Key: WW-4663
                 URL: https://issues.apache.org/jira/browse/WW-4663
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.3.30, 2.3.29, 2.3.28
            Reporter: Yan Soulliaert


Hello,

I'm currently trying to upgrade Struts from V2.3.20 to V2.3.30.
Starting from V2.3.28, I'm having a yellow FreeMarker stack at the end of some pages. These pages have a <s:form> tag without "action" attribute.

Here is some part of the displayed error :
{noformat}
Java method "org.apache.struts2.components.Form.getValidators(String)" threw an exception when invoked on org.apache.struts2.components.Form object "org.apache.struts2.components.Form@3d354929"; see cause exception in the Java stack trace.
FTL stack trace ("~" means nesting-related):
	- Failed at: #list tag.getValidators("\$\{tagName\}"...  [in template "template/~~~css_xhtml/form-close-validate.ftl" at line 66, column 9]
	- Reached through: #include "/\$\{parameters.templateDir\}...  [in template "template/xhtml/form-close.ftl" at line 25, column 1]
...
Caused by: java.lang.NullPointerException
	at org.apache.struts2.util.ComponentUtils.containsExpression(ComponentUtils.java:51)
	at org.apache.struts2.components.Component.findValue(Component.java:376)
	at org.apache.struts2.components.Component.findString(Component.java:226)
	at org.apache.struts2.components.Form.getValidators(Form.java:276)
{noformat}

Here are the results of my research :
- When the method  org.apache.struts2.components.Form.getValidators(String name) is called at the end of the page display, the "action" var is null.
- findString(action) is called, leading to org.apache.struts2.components.Component.findValue(String expr, Class toType) with expr=null
- Starting from V2.3.28,  a new condition has been added to this method : if (ComponentUtils.containsExpression(expr)). This raises the NPE.

Is this a bug, or am I doing something wrong ?

Thanks in advance,
Yan



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