[ https://issues.apache.org/jira/browse/WW-4827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16109297#comment-16109297 ]
ASF GitHub Bot commented on WW-4827: ------------------------------------ Github user aleksandr-m commented on the issue: https://github.com/apache/struts/pull/153 Nope, #155 doesn't seem have any effect. Add following files to project, run under *nix, execute some action which lead to the JSP, `localizedTextProvider` should not be `null` in system outs. xwork-conversion.properties; java.util.Date=com.DateConverter JSP: <s:bean var="d" name="java.util.Date" /> <s:property value="#d" /> DateConverter: ``` public class DateConverter extends StrutsTypeConverter { private LocalizedTextProvider localizedTextProvider; @Inject public void setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider) { this.localizedTextProvider = localizedTextProvider; } @Override public Object convertFromString(Map context, String[] values, Class toClass) { System.out.println("DateConverter.convertFromString() localizedTextProvider=" + localizedTextProvider); return null; } @Override public String convertToString(Map context, Object obj) { System.out.println("DateConverter.convertToString() localizedTextProvider=" + localizedTextProvider); return ""; } } ``` > Not fully initialized ObjectFactory tries to create beans > --------------------------------------------------------- > > Key: WW-4827 > URL: https://issues.apache.org/jira/browse/WW-4827 > Project: Struts 2 > Issue Type: Bug > Affects Versions: 2.5.12 > Reporter: Aleksandr Mashchenko > Priority: Critical > Fix For: 2.5.13 > > > This leads to issues when properties aren't injected in some cases, for > example in custom type converters. > The problem happens when {{ObjectFactory}} tries to create a bean in the same > time not being fully initialized itself (e.g. {{ConverterFactory}} injected > before {{Container}}). > The issue happens more often under linux (all the time basically) than under > windows, so it cannot be reproduced 100%. This behavior boils down to the > fact that {{clazz.getDeclaredMethods()}} is used to get methods which needs > to be injected and {{clazz.getDeclaredMethods()}} returned elements are - > _The elements in the array returned are not sorted and are not in any > particular order._ > Proposed solution moves Container injection from method to constructor in > ObjectFactory - > https://github.com/aleksandr-m/struts/commit/6f91d0776a545c911ca4f2875ed9976614711ef9. > The downside is it isn't backward-compatible, custom object factories must be > updated. -- This message was sent by Atlassian JIRA (v6.4.14#64029)