struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sami Dalouche (JIRA)" <j...@apache.org>
Subject [jira] Commented: (WW-1978) NPE in XWorkConverter.loadConversionProperties after adding DateConverter
Date Sun, 03 Feb 2008 09:28:40 GMT

    [ 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.


Mime
View raw message