You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Ciaran Jessup (JIRA)" <ji...@apache.org> on 2013/03/20 23:25:15 UTC

[jira] [Created] (ODE-991) ode:delete fails when removing multiple elements

Ciaran Jessup created ODE-991:
---------------------------------

             Summary: ode:delete fails when removing multiple elements
                 Key: ODE-991
                 URL: https://issues.apache.org/jira/browse/ODE-991
             Project: ODE
          Issue Type: Bug
          Components: BPEL Runtime
    Affects Versions: 1.3.2
         Environment: Currently running r832808 with a couple of local patches.
            Reporter: Ciaran Jessup
            Priority: Minor


If ode:delete($Foo/x:child) returns multiple elements for deletion my workflow fails with a selectionFailure :( 

It seems to be caused by the Delete method being passed a SequenceExtent rather than the expected List etc. 

Whilst adding in support for that type (not sure why this only affects me ?) I also found that the logic for removing child elements from the cloned element that the function returns was squiffy.  It seemed as if it was mutating the collection so the position offsets were incorrect and the wrong elements would get removed from the parent element.  I've updated the code to resolve that too (there is a better solution as alluded to in my code comments in the patch)

Ironically? I've stopped using ode:delete even with my 'fixes' and moved to use an XSL transform as this turned out to be more memory efficient when doing multiple deletes so I'm just providing my fixes back in case anyone else needs / wants them.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira