You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Vitaliy Tkachenko (JIRA)" <ji...@apache.org> on 2019/01/29 15:41:00 UTC

[jira] [Closed] (ODE-1077) ODE doesn't distinguish between complex node selection and its text subnode

     [ https://issues.apache.org/jira/browse/ODE-1077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vitaliy Tkachenko closed ODE-1077.
----------------------------------
    Resolution: Invalid

In XPath 1.0 only existed node can be replaced. If text node exists it works fine.

> ODE doesn't distinguish between complex node selection and its text subnode
> ---------------------------------------------------------------------------
>
>                 Key: ODE-1077
>                 URL: https://issues.apache.org/jira/browse/ODE-1077
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.3.8
>            Reporter: Vitaliy Tkachenko
>            Priority: Major
>
> 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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)