[ 
https://issues.apache.org/struts/browse/WW-3161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wes Wannemacher updated WW-3161:
--------------------------------

    Fix Version/s: 2.1.8

bumping to 2.1.8

> 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
>             Fix For: 2.1.8
>
>
> 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