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.

Reply via email to