You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2010/12/10 17:08:20 UTC

svn commit: r1044415 - /felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java

Author: gnodet
Date: Fri Dec 10 16:08:20 2010
New Revision: 1044415

URL: http://svn.apache.org/viewvc?rev=1044415&view=rev
Log:
[FELIX-2723] When the execution of a closure with pipes is interrupted, pipes should be interrupted too

Modified:
    felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java

Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java?rev=1044415&r1=1044414&r2=1044415&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java (original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java Fri Dec 10 16:08:20 2010
@@ -188,9 +188,20 @@ public class Closure implements Function
                 {
                     pipe.start();
                 }
-                for (Pipe pipe : pipes)
+                try
                 {
-                    pipe.join();
+                    for (Pipe pipe : pipes)
+                    {
+                        pipe.join();
+                    }
+                }
+                catch (InterruptedException e)
+                {
+                    for (Pipe pipe : pipes)
+                    {
+                        pipe.interrupt();
+                    }
+                    throw e;
                 }
             }