Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Invalid
-
1.3.8
-
None
-
None
Description
ODE doesn't distinguish either complex node is selected $extPLRequest.parameters/ns:userIdin or it's text subnode (per XPath specification, means "node inner text") $extPLRequest.parameters/ns:userIdin/text().
It was a bug created and fixed ODE-960 but the fix looks incorrect. When the selected node is intended to be replaced the whole selection should be replaced so having selected full complex node $extPLRequest.parameters/ns:userIdin all its content including subnodes should be replaced. Node attributes are meant as root node subnodes so should not be restored as it was done in 690's fix.
Instead if user wants to do the node text replacement only he should select not the whole complex node but its text subnode (inner text) only using the text() funciton per XPath specification.
But ODE doesn't distinguish between these 2 formulas and operates on the whole node similarly in both cases. To reproduce the bug rollback the fix made in 960 and apply text() function in lvalue accepting the replacement. The whole node will be replaced as in the case if no "text()" function is applied.
Note that the same in JBPM works correctly - if complex node is selected as lvalue then its full content is replaced, if selection limits to its text only using text() function, only text is replaced.