diff --git a/classpath/avian/PersistentSet.java b/classpath/avian/PersistentSet.java index b935def408..c5efdad641 100644 --- a/classpath/avian/PersistentSet.java +++ b/classpath/avian/PersistentSet.java @@ -212,9 +212,11 @@ public class PersistentSet implements Iterable { Node child; if (dead.left != NullNode) { - child = dead.left; + child = new Node(dead.left); + } else if (dead.right != NullNode) { + child = new Node(dead.right); } else { - child = dead.right; + child = NullNode; } if (ancestors == null) { @@ -453,6 +455,7 @@ public class PersistentSet implements Iterable { return new Path(false, s.value, p.root, s.next); } } + private static class Node { public T value; public Node left;