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:17:43 UTC

[jira] [Commented] (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:comment-tabpanel&focusedCommentId=13945141#comment-13945141 ] 

Lukasz Lenart commented on WW-4262:
-----------------------------------

Ok, I found where is the problem, fix suppose to be easy ;-)

> 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)