You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (JIRA)" <ji...@apache.org> on 2014/03/24 15:13:43 UTC

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

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

Lukasz Lenart updated WW-4262:
------------------------------

    Description: 
 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.

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:
{noformat}
SEVERE: Actual exception
Caught Exception while registering Interceptor class example.HitachiTestInterceptor - interceptor - file:/Users/andrewcarr/Documents/work-workspace-kepler-ee/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Struts2-10243/WEB-INF/classes/struts.xml:14:98
        at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77)
        at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1110)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:928)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:941)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:964)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:533)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildPackageContext(XmlConfigurationProvider.java:666)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:519)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
        at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
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)
        ... 29 more
{noformat}

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.

  was:
 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.

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:
{noformat}
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)
{noformat}

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.


> 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.15.1, 2.3.15.3, 2.3.16
>         Environment: Mac OSX - JDK 1.7_0_25 and 45
>            Reporter: Andrew Carr
>             Fix For: 2.3.17
>
>   Original Estimate: 12h
>  Remaining Estimate: 12h
>
>  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.
> 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:
> {noformat}
> SEVERE: Actual exception
> Caught Exception while registering Interceptor class example.HitachiTestInterceptor - interceptor - file:/Users/andrewcarr/Documents/work-workspace-kepler-ee/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Struts2-10243/WEB-INF/classes/struts.xml:14:98
>         at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77)
>         at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:70)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1110)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:928)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:941)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:964)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:533)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildPackageContext(XmlConfigurationProvider.java:666)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:519)
>         at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292)
>         at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
>         at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250)
>         at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
>         at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446)
>         at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
>         at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
>         at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
>         at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
>         at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
>         at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
>         at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
>         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
>         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>         at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
>         at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:722)
> 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)
>         ... 29 more
> {noformat}
> 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.2#6252)