[
https://issues.apache.org/struts/browse/WW-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43145#action_43145
]
Sami Dalouche commented on WW-1978:
-----------------------------------
Hi,
I have upgraded to Struts 2.1.0 and struts 2.1.1-snapshot, and experience the
same problem with both versions.
Can you really confidently say that this bug is resolved ?
[ERROR] [2008-02-03 09:22:03,074]
[com.opensymphony.xwork2.conversion.impl.XWorkConverter] (main,) : Conversion
registration error
java.lang.NullPointerException
at
com.opensymphony.xwork2.conversion.impl.XWorkConverter.createTypeConverter(XWorkConverter.java:729)
at
com.opensymphony.xwork2.conversion.impl.XWorkConverter.loadConversionProperties(XWorkConverter.java:756)
at
com.opensymphony.xwork2.conversion.impl.XWorkConverter.<init>(XWorkConverter.java:184)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:388)
at
com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:211)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:400)
at
com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:211)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:400)
at
com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:211)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:400)
at
com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:211)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:98)
at
com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:489)
at
com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:542)
at
com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:486)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:221)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:168)
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:370)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:423)
at
org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:211)
at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3598)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4168)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.startup.Embedded.start(Embedded.java:821)
at
org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:253)
at
org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:113)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:493)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:463)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] [2008-02-03 09:22:03,161]
[org.apache.struts2.spring.StrutsSpringObjectFactory] (main,) : Initializing
Struts-Spring integration...
[INFO] [2008-02-03 09:22:03,161]
[com.opensymphony.xwork2.spring.SpringObjectFactory] (main,) : Setting autowire
strategy to name
[INFO] [2008-02-03 09:22:03,161]
[org.apache.struts2.spring.StrutsSpringObjectFactory] (main,) : ... initialized
Struts-Spring integration successfully
[ERROR] [2008-02-03 09:22:03,162]
[com.opensymphony.xwork2.conversion.impl.XWorkConverter] (main,) : Conversion
registration error
java.lang.NullPointerException
at
com.opensymphony.xwork2.conversion.impl.XWorkConverter.createTypeConverter(XWorkConverter.java:729)
at
com.opensymphony.xwork2.conversion.impl.XWorkConverter.loadConversionProperties(XWorkConverter.java:756)
at
com.opensymphony.xwork2.conversion.impl.XWorkConverter.<init>(XWorkConverter.java:184)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:388)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:461)
at
com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:501)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:549)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499)
at
com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
at
com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:400)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:461)
at
com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:501)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:549)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499)
at
com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
at
com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:400)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:461)
at
com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:501)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:549)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499)
at
com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
at
com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:400)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:461)
at
com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:501)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:549)
at
com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:499)
at
com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
at
com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:476)
at
com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:486)
at
com.opensymphony.xwork2.inject.ContainerImpl$9.call(ContainerImpl.java:517)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:549)
at
com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:515)
at
org.apache.struts2.config.BeanSelectionProvider$ObjectFactoryDelegateFactory.create(BeanSelectionProvider.java:297)
at
com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
at
com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:431)
at
com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:446)
at
com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
at
com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
at
com.opensymphony.xwork2.inject.ContainerImpl$2.call(ContainerImpl.java:117)
at
com.opensymphony.xwork2.inject.ContainerImpl$2.call(ContainerImpl.java:115)
at
com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:542)
at
com.opensymphony.xwork2.inject.ContainerImpl.injectStatics(ContainerImpl.java:114)
at
com.opensymphony.xwork2.inject.ContainerBuilder.create(ContainerBuilder.java:495)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:170)
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
at
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:370)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:423)
at
org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:211)
at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
at
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3598)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4168)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.startup.Embedded.start(Embedded.java:821)
at
org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:253)
at
org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:113)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:493)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:463)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> NPE in XWorkConverter.loadConversionProperties after adding DateConverter
> -------------------------------------------------------------------------
>
> Key: WW-1978
> URL: https://issues.apache.org/struts/browse/WW-1978
> Project: Struts 2
> Issue Type: Bug
> Components: Core Actions
> Affects Versions: 2.0.6, 2.0.8
> Reporter: Matt Raible
> Assignee: Don Brown
> Fix For: 2.1.0
>
>
> I recently added a DateConverter to my project (Struts 2.0.6, Maven 2) and
> now I'm getting NPEs when running tests.
> xwork-conversion.properties:
> java.util.Date=org.appfuse.webapp.action.DateConverter
> DateConverter.java:
> public class DateConverter extends StrutsTypeConverter {
> public Object convertFromString(Map ctx, String[] value, Class arg2) {
> if (value[0] == null || value[0].trim().equals("")) {
> return null;
> }
> try {
> return DateUtil.convertStringToDate(value[0]);
> } catch (ParseException pe) {
> pe.printStackTrace();
> throw new TypeConversionException(pe.getMessage());
> }
> }
> public String convertToString(Map ctx, Object data) {
> return DateUtil.convertDateToString((Date) data);
> }
> }
> My test's setUp() method:
> @Override
> protected void onSetUpBeforeTransaction() throws Exception {
> LocalizedTextUtil.addDefaultResourceBundle(Constants.BUNDLE_KEY);
> ActionContext.getContext().setSession(new HashMap());
> // change the port on the mailSender so it doesn't conflict with an
> // existing SMTP server on localhost
> JavaMailSenderImpl mailSender = (JavaMailSenderImpl)
> applicationContext.getBean("mailSender");
> mailSender.setPort(2525);
> mailSender.setHost("localhost");
> // populate the request so getRequest().getSession() doesn't fail in
> BaseAction.java
> ServletActionContext.setRequest(new MockHttpServletRequest());
> }
> Stack trace:
> ERROR [main] XWorkConverter.loadConversionProperties(645) | Conversion
> registration error
> java.lang.NullPointerException
> at
> com.opensymphony.xwork2.util.XWorkConverter.createTypeConverter(XWorkConverter.java:621)
> at
> com.opensymphony.xwork2.util.XWorkConverter.loadConversionProperties(XWorkConverter.java:639)
> at
> com.opensymphony.xwork2.util.XWorkConverter.<init>(XWorkConverter.java:176)
> at
> com.opensymphony.xwork2.util.AnnotationXWorkConverter.<init>(AnnotationXWorkConverter.java:98)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
> at java.lang.Class.newInstance0(Class.java:350)
> at java.lang.Class.newInstance(Class.java:303)
> at
> com.opensymphony.xwork2.util.XWorkConverter.getInstance(XWorkConverter.java:202)
> at
> com.opensymphony.xwork2.util.XWorkMapPropertyAccessor.<clinit>(XWorkMapPropertyAccessor.java:30)
> at
> com.opensymphony.xwork2.util.OgnlValueStack.reset(OgnlValueStack.java:47)
> at
> com.opensymphony.xwork2.util.OgnlValueStack.<clinit>(OgnlValueStack.java:37)
> at
> com.opensymphony.xwork2.util.OgnlValueStackFactory.createValueStack(OgnlValueStackFactory.java:14)
> at
> com.opensymphony.xwork2.ActionContext$ActionContextThreadLocal.initialValue(ActionContext.java:329)
> at
> java.lang.ThreadLocal$ThreadLocalMap.getAfterMiss(ThreadLocal.java:374)
> at java.lang.ThreadLocal$ThreadLocalMap.get(ThreadLocal.java:347)
> at
> java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java:225)
> at java.lang.ThreadLocal.get(ThreadLocal.java:127)
> at
> com.opensymphony.xwork2.ActionContext.getContext(ActionContext.java:151)
> at
> org.appfuse.webapp.action.BaseActionTestCase.onSetUpBeforeTransaction(BaseActionTestCase.java:35)
>
> I tested this with Struts 2.0.8 and there's no change.
> I posted this to the mailing list, but received no responses.
> http://www.nabble.com/Testing-error-after-adding-DateConverter-tf3868021.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.