Prakash Udupa created TRINIDAD-2453:
---------------------------------------
Summary: MoveChildComponentChange fails to apply document change
for relocated component case
Key: TRINIDAD-2453
URL: https://issues.apache.org/jira/browse/TRINIDAD-2453
Project: MyFaces Trinidad
Issue Type: Bug
Affects Versions: 2.1.0-core
Reporter: Prakash Udupa
MoveChildComponentChange has documentation that all participants in the move
(child to move, the new parent at destination, common parent to both of these)
should belong to the same document.
This is failing in relocated components usecase when the first two components
are in the same document, and when a common parent can be found in the same
document.
For example consider this case:
Template definition for template1 is as follows:
<commonParent2>
<facet1-reference/> <!-- facet1 contents from the base page will be relocated
here -->
<facet2-reference/> <!-- facet2 contents from the base page will be relocated
here -->
<commonParent2>
Base Page (uses template1) definition is as follows:
<commonParent1>
<template1> <!-- UIXInclude component -->
<facet1>
<componentToMove/>
</facet1>
<facet2>
<destinationContainer/>
</facet2>
</template1>
</commonParent2>
In this case the "componentToMove" and "destinationContainer" are defined in
the same document (Base Page), and the implementation in
MoveChildComponentChange can easily record "commonParent1" as the common
ancestor in which case all three participants belong to the same document and
so the move document change should be successful. Instead the issue is that the
implementation considers "commonParent2" as the common ancestor, this component
belongs to a different document (template1), and results in the Move document
change failing.
I'll upload a patch that fixes this issue, and also cleans up the code in
MoveChildComponentChange to improve readability and make it easy to understand.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)