I run into this problem with T5 when tring to add/remove/add a valve to the standard engine. -For what I understand an empty pipeline has: basic = StandardEngineValve (For example); first = null; -If you add a valve you will get basic = StandardEngineValve first = myValve (with myValve.next = StandardEngineValve) -If you remove the valve you will get basic =StandardEngineValve first = StandardEngineValve Note that StandardEngineValve is in first too here. -If I try to add a new valve given the actual code in addValve the valve will not be added because (see the **) current = basic and current.getNext() = null; addValve(Valve valve) { // Add this Valve to the set associated with this Pipeline if (first == null) { first = valve; valve.setNext(basic); } else { Valve current = first; while (current != null) { ** if (current.getNext() == basic) { current.setNext(valve); valve.setNext(basic); break; } current = current.getNext(); } } }
Created attachment 18402 [details] The patch on the removeValve Method
Seems like a good suggestion: can you please submit your patch in diff -u format? Thank you.
Hi, Here is the diff. My patch had a little type by the way i.e.: == instead of = Anyway the following works Regards /David diff -u StandardPipeline.java StandardPipelinePatched.java --- StandardPipeline.java 2006-06-15 15:31:12.637965896 -0400 +++ StandardPipelinePatched.java 2006-06-15 15:30:45.894031592 -0400 @@ -530,6 +530,9 @@ current = current.getNext(); } + // PATCH: Empty the pipeline if only the basic valve is there + if (first == basic) first = null; + if (valve instanceof Contained) ((Contained) valve).setContainer(null);
*** Bug 35914 has been marked as a duplicate of this bug. ***
Patch applied to SVN and will be in 5.5.21 onwards. Thanks for tracking this down and providing the patch.