ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tammo van Lessen (JIRA)" <j...@apache.org>
Subject [jira] [Work started] (ODE-991) ode:delete fails when removing multiple elements
Date Thu, 11 Jun 2015 10:33:00 GMT

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

Work on ODE-991 started by Tammo van Lessen.
> 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
>            Assignee: Tammo van Lessen
>            Priority: Minor
>             Fix For: 1.3.7
>         Attachments: FixDeleteForMultipleElements.patch
> 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 was sent by Atlassian JIRA

View raw message