You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Andrew Carr (JIRA)" <ji...@apache.org> on 2013/12/20 08:19:07 UTC

[jira] [Created] (WW-4262) TextParseUtil.translateVariables throws NPE when called from Interceptor Init() method

Andrew Carr created WW-4262:
-------------------------------

             Summary: TextParseUtil.translateVariables throws NPE when called from Interceptor Init() method
                 Key: WW-4262
                 URL: https://issues.apache.org/jira/browse/WW-4262
             Project: Struts 2
          Issue Type: Bug
          Components: Value Stack
    Affects Versions: 2.3.16, 2.3.15.3, 2.3.15.1
         Environment: Mac OSX - JDK 1.7_0_25 and 45
            Reporter: Andrew Carr


 The key thing to remember is this problem does
not occur using Struts 2.3.4.1.  There are a couple of false
indicators that I have worked through and I do believe this is due to
a recent change in the code.  I have debugged it thoroughly and would
appreciate any pointers in the right direction.

Should I file this as a bug against 2.3.16?  Thanks in advance for
your expert review.

I have tested this on MAC/OSX with Java 7u25 and 7u45, and tomcat
7047, 800rc5, 800rc9 as well.

Call to TextParseUtil.translateVariable throws Null Pointer exception.

This happens when I call

TextProviderFactory.createInstance(Class,LocaleProvider).getText(String)

from an "init()" method of an interceptor.

This works fine in struts 2.3.4.1.  After upgrading to 2.3.15.1,
2.3.15.3 and 2.3.16, the server fails to deploy the application with
the following exception:

Caused by: java.lang.NullPointerException
at com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:170)
at com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:127)
at com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:49)
at com.opensymphony.xwork2.util.LocalizedTextUtil.getMessage(LocalizedTextUtil.java:683)
at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:467)
at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:362)
at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:208)
at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:123)
at example.TextUtil.getText(TextUtil.java:59)
at example.HitachiTestInterceptor.init(HitachiTestInterceptor.java:29)
at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:57)


The full stack trace is available here:
http://pastebin.com/Us7AFxWT

I have debugged the code update.  It appears this is happening when
calling  ValueStack#findValue(java.lang.String) from the interceptor.

I have time to work on a patch, if this issue is valid.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)