[ https://issues.apache.org/jira/browse/WW-4262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13961424#comment-13961424 ]
Hudson commented on WW-4262: ---------------------------- ABORTED: Integrated in Struts-JDK6-master #893 (See [https://builds.apache.org/job/Struts-JDK6-master/893/]) WW-4262 Adds TextParser to be initialised in bootstrap configuration (lukaszlenart: rev e62547e04770569a01c45b1b2cbfdecd92f79bcd) * xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java > 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 > Assignee: Lukasz Lenart > 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)