struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aymeric Levaux (JIRA)" <>
Subject [jira] Commented: (WW-1993) Unable to submit lists without a file
Date Tue, 03 Jul 2007 07:50:26 GMT


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, 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 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 file
> -----------------------------------------------------------
>                 Key: WW-1993
>                 URL:
>             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 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.

View raw message