[
https://issues.apache.org/struts/browse/WW-1993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_41337
]
Aymeric Levaux commented on WW-1993:
------------------------------------
I faced the same problem and found the cause.
Prior to Xwork 2.0.3 the objectTypeDeterminer property in XWorkConverter was
initialised using the instance created by the static block in
ObjectTypeDeterminerFactory. This static block determines which implementation
of the ObjectTypeDeterminer must be instantiated according to the Java version.
This was quite useful: no need of extra configuration to get some benefits when
using Java5+ versions.
In 2.0.3 the instance of ObjectTypeDeterminer in use is the one created in the
Dispatcher (method init_PreloadConfiguration) and the implementation used
depends of the value of struts.objectTypeDeterminer in struts.properties, which
defaults to struts that points to the non generics implementation.
So applications developed with WebWork or prior Struts 2 versions that are
taking benefits of the GenericsObjectTypeDeterminer are broken after migration
to Struts 2.0.8 until the struts.objectTypeDeterminer in struts.properties is
set to 'tiger'.
As Struts 2 is using Java 5, I guess that the default value of
struts.objectTypeDeterminer should be 'tiger'.
And maybe the static block in ObjectTypeDeterminerFactory should be removed; it
is a bit confusing when debugging.
> Unable to submit lists without a conversion.properties file
> -----------------------------------------------------------
>
> Key: WW-1993
> URL: https://issues.apache.org/struts/browse/WW-1993
> Project: Struts 2
> Issue Type: Bug
> Affects Versions: 2.0.8
> Environment: Mac OSX 10.4.9, Java 1.5.0_07-87, Tomcat 5.5.20
> Reporter: Adam Ruggles
> Priority: Minor
>
> My Form looks like this:
> <form ...>
> <input type="hidden" name="invoices[0].id" value="24907" />
> <input type="text" name="invoices[0].salesOrder" value="" />
> <input type="hidden" name="invoices[1].id" value="24908" />
> <input type="text" name="invoices[1].salesOrder" value="" />
> <input type="hidden" name="invoices[2].id" value="24909" />
> <input type="text" name="invoices[2].salesOrder" value="" />
> ...
> ...
> </form>
> My Action looks like this
> /**
> * A list of Invoices.
> */
> private List<Invoice> invoices;
> /**
> * Sets invoices.
> * @param invoices The invoices to set.
> */
> public void setInvoices(final List<Invoice> invoices) {
> this.invoices = invoices;
> }
> In struts 2.0.6 the form submits and works like expected. In struts 2.0.8 I
> get a null pointer when trying to access invoices in my action (basically
> it's not coming over). I've changed nothing but the struts.
> Adding a conversion.properties file allowed me to submit the form
> successfully. According to the docs and previous versions of struts and
> webwork the Generics definition of Invoice should have been sufficient.
> Adding the new Element annotation did not solve the issue.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.