Aleksandr Mashchenko created WW-4827:
----------------------------------------

             Summary: 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


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 ({{setConverterFactory}} is called 
before {{setContainer}}).

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)

Reply via email to