When using execAndWait interceptor, getText() fails with npe
(ActionContext.getContext() is null)
-------------------------------------------------------------------------------------------------
Key: WW-3161
URL: https://issues.apache.org/struts/browse/WW-3161
Project: Struts 2
Issue Type: Bug
Components: Core Interceptors
Affects Versions: 2.1.6
Reporter: Gustavo De Sanctis
I have a simple action that extends ActionSupport and uses the execAndWait
interceptor.
In the "execute" method there is a getText("samekey") that fails with:
java.lang.NullPointerException
com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:318)
com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:191)
com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:106)
com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:80)
it.test.SimpleAction.execute(SimpleAction.java:10)
When using the default interceptor stack, it works fine.
My guess is that as the action context is threadlocal and as the execAndWait
interceptor creates a new thread to handle the request... this new thread has
no reference to the action context (infact ActionContext.getContext() returns
null when using execAndWait)
Below the data to reproduce the problem:
*****************************
ACTION CLASS: it.test.SimpleAction
*****************************
package it.test;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class SimpleAction extends ActionSupport {
public String execute(){
System.out.println(ActionContext.getContext());
addActionMessage(getText("message.sample","ciao"));
return SUCCESS;
}
}
***********************
Struts config
************************
<action name="simple" class="it.test.SimpleAction">
<interceptor-ref name="execAndWait" />
<result name="success">/simple.jsp</result>
</action>
***********************
simple.jsp
**********************
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%...@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Simple </title>
</head>
<body>
<s:actionmessage/>
</body>
</html>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.