commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "joel truher (JIRA)" <j...@apache.org>
Subject [jira] Updated: (SCXML-89) Assign.execute() doesn't remove all children of oldNode (includes fix)
Date Fri, 14 Nov 2008 06:24:44 GMT

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

joel truher updated SCXML-89:
-----------------------------

    Description: 
This code, from Assign.execute(), seems to remove the oldNode child and *then* ask for its
next sibling, which returns null.  The result is to remove the first child, but leave the
other children around, so that the result of "Assign" is a concatenation of all-but-one of
the old nodes, followed by the new nodes.

{noformat}
for (Node child = oldNode.getFirstChild();
   child != null;
   child = child.getNextSibling()) {
   oldNode.removeChild(child);
}
{noformat}

This (modified) code finds the next sibling before removal and produces the expected result.

{noformat}
for (Node child = oldNode.getFirstChild(); child != null;) {
   Node nextChild = child.getNextSibling();
   oldNode.removeChild(child);
   child = nextChild;
}
{noformat}

I can supply a test case if that would be helpful.

  was:
This code, from Assign.execute(), seems to remove the oldNode child and *then* ask for its
next sibling, which returns null.  The result is to remove the first child, but leave the
other children around, so that the result of "Assign" is a concatenation of all-but-one of
the old nodes, followed by the new nodes.

{quote}
for (Node child = oldNode.getFirstChild();
   child != null;
   child = child.getNextSibling()) {
   oldNode.removeChild(child);
}
{quote}

This (modified) code finds the next sibling before removal and produces the expected result.

{quote}
for (Node child = oldNode.getFirstChild(); child != null;) {
   Node nextChild = child.getNextSibling();
   oldNode.removeChild(child);
   child = nextChild;
}
{quote}

I can supply a test case if that would be helpful.


> Assign.execute() doesn't remove all children of oldNode (includes fix)
> ----------------------------------------------------------------------
>
>                 Key: SCXML-89
>                 URL: https://issues.apache.org/jira/browse/SCXML-89
>             Project: Commons SCXML
>          Issue Type: Bug
>    Affects Versions: 0.8
>         Environment: Ubuntu 7.10 (64 bit), JRE ia32-java6-sun-1.6.0.03
>            Reporter: joel truher
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> This code, from Assign.execute(), seems to remove the oldNode child and *then* ask for
its next sibling, which returns null.  The result is to remove the first child, but leave
the other children around, so that the result of "Assign" is a concatenation of all-but-one
of the old nodes, followed by the new nodes.
> {noformat}
> for (Node child = oldNode.getFirstChild();
>    child != null;
>    child = child.getNextSibling()) {
>    oldNode.removeChild(child);
> }
> {noformat}
> This (modified) code finds the next sibling before removal and produces the expected
result.
> {noformat}
> for (Node child = oldNode.getFirstChild(); child != null;) {
>    Node nextChild = child.getNextSibling();
>    oldNode.removeChild(child);
>    child = nextChild;
> }
> {noformat}
> I can supply a test case if that would be helpful.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message