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)