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)