]
Nick Belaevski commented on RF-2393:
------------------------------------
Mike,
Can I ask you for a simpler test case? The one attached is somewhat complicated for
investigation and debugging and will take a lot of time.
Tree nested inside node of an outer tree has strange behaviour on
ajax submit when there are validation errors
--------------------------------------------------------------------------------------------------------------
Key: RF-2393
URL:
https://jira.jboss.org/jira/browse/RF-2393
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.1.4
Environment: Glassfish v2, JSF RI 1.2
Reporter: Mike Hanafey
Assignee: Nick Belaevski
Attachments: NestedTree.tar.gz, NestedTree.war
I have situation where there is an outer tree whose nodes have an inner tree.
Specifically, the outer tree is over DNA sequences, and each DNA sequence may have a tree
of comments attached to it.
Both the inner and outer trees have a couple of faces, one is used when a node is in
display mode, and the other when it is in edit mode.
If the inner tree is put into edit mode at a node (via an ajax request) and a validation
error occurs on a second ajax request to submit the edits, the whole inner tree for that
node disappears. It can be recovered by doing a browser redisplay. If there is no
validation error, the edit works as expected
Looking at the XmlHttpRequest response when there is a validation error shows that the
response does not contain the expected tree nodes.
When this same comment tree code (both the backing beans and the facelets views) is
applied on an unnested tree this problem does not occur.
A test war is attached (the war is big only because it includes the library dependencies
-- the test code itself is small).
To demonstrate, deploy the war and look at the top page.
Click on the + next to "Comments" (this is the un-nested tree). Click
"Ajax Save". Observe the "Value is required" messages.
Enter something into the first textfield, and do the "Ajax Save". Now a custom
validation message appears.
Now for the first strangeness. Enter something in both the textfield and the textarea.
The custom validation message appears on both inputs, but now the inputs just made are
erased. When only one of these fields have data, the data entered in the other field is
preserved, and I believe the clearing of input data is another error, but not the one in
the title of this this issue.
To see the main issue, open the tree labeled "Sequences". This has a comments
tree just like the one above nested inside the sequence node.
Click on the + next the "Comments" under "Sequences".
Click on "Ajax Save". Now instead of seeing the "Value is required"
error, the inner tree node collapses. Click on the "Submit" button, an reopen
the "Sequences" tree to see that the inner tree is in fact still intact.
Click on "Ajax Immediate". Now the tree does not collapse. The only difference
is this button is immediate, so the validation steps are not done.
Finally, clicking on "Plain Save" shows the expected validation errors (now the
Sequence tree collapses after the submit so it must be manually opened, but I guess this
is expected behavior because the open / close state is not maintained across the request).
The problem where the inputs that fail validation are erased remains even with this
non-ajax update mode).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: