Stephan created WW-5077:
---------------------------
Summary: Unable to set long pathname variables
Key: WW-5077
URL: https://issues.apache.org/jira/browse/WW-5077
Project: Struts 2
Issue Type: Bug
Components: Core
Affects Versions: 2.3.24
Reporter: Stephan
I implemented a simple struts2+tiles (Struts 2 core version: 2.3.24.1) as a
test case to verify an issue that have.
In detail, i have the following Struts form:
{code:java}
<s:form action="save">
<s:hidden name="metadataTest.name" value="Level-1_new" />
<s:hidden name="metadataTest.metadataList[0].name"
value="Level-2_new" />
<s:hidden name="metadataTest.metadataList[0].metadataList[0].name"
value="Level-3_new" />
<s:hidden
name="metadataTest.metadataList[0].metadataList[0].metadataList[0].name"
value="Level-4_new" />
<s:hidden
name="metadataTest.metadataList[0].metadataList[0].metadataList[0].metadataList[0].name"
value="Level-5_new" />
<s:hidden
name="metadataTest.metadataList[0].metadataList[0].metadataList[0].metadataList[0].metadataList[0].name"
value="Level-6_new" />
<s:hidden
name="metadataTest.metadataList[0].metadataList[0].metadataList[0].metadataList[0].metadataList[0].metadataList[0].name"
value="Level-7_new" />
<s:submit/>
</s:form>
{code}
The metadataTest class:
{code:java}
public class Metadata implements Serializable {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 5902230367443812176L;
private String name;
private ArrayList<Metadata> metadataList;
public Metadata() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Metadata> getMetadataList() {
return metadataList;
}
public void setMetadataList(ArrayList<Metadata> metadataList) {
this.metadataList = metadataList;
}
}
{code}
My issue here is following. When i submit this form, all values up to this
level, are set correctly
{code:java}
<s:hidden
name="metadataTest.metadataList[0].metadataList[0].metadataList[0].metadataList[0].metadataList[0].name"
value="Level-6_new" />
{code}
For some reason the below hidden element is never set, instead, the medataList
at level 6 is null, while the name set by the hidden field above, is set
correctly.
{code:java}
<s:hidden
name="metadataTest.metadataList[0].metadataList[0].metadataList[0].metadataList[0].metadataList[0].metadataList[0].name"
value="Level-7_new" />
{code}
Is there any kind of limitation by struts concerning the depth in a list
hierarchie or maybe the length of path to set a value ? I could not find
something related.
*Note 1*: It surely has to do something with the length of the parameters. Once
i changed the variable names to longer ones, i was able to set values only up
to Level 3.
*Note 2*: Downgrading to Struts 2.1.6 resolves the issue. Also latest version
2.5.22 seems to be afffected from the exact same issue. Is there any workaround
?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)