You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2018/06/18 09:33:58 UTC

svn commit: r1833692 - /aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/EffectsOSGi.java

Author: csierra
Date: Mon Jun 18 09:33:58 2018
New Revision: 1833692

URL: http://svn.apache.org/viewvc?rev=1833692&view=rev
Log:
[ARIES-1811] Always execute onRemoving action

Modified:
    aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/EffectsOSGi.java

Modified: aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/EffectsOSGi.java
URL: http://svn.apache.org/viewvc/aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/EffectsOSGi.java?rev=1833692&r1=1833691&r2=1833692&view=diff
==============================================================================
--- aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/EffectsOSGi.java (original)
+++ aries/trunk/component-dsl/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/EffectsOSGi.java Mon Jun 18 09:33:58 2018
@@ -26,14 +26,30 @@ public class EffectsOSGi extends OSGiImp
         super((bundleContext, op) -> {
             onAdding.run();
 
-            Runnable terminator = op.publish(null);
+            try {
+                Runnable terminator = op.publish(null);
 
-            return new OSGiResultImpl(
-                () -> {
-                    terminator.run();
+                return new OSGiResultImpl(
+                    () -> {
+                        try {
+                            terminator.run();
+                        }
+                        finally {
+                            try {
+                                onRemoving.run();
+                            }
+                            catch (Exception e) {
+                                //TODO: logging
+                            }
+                        }
 
-                    onRemoving.run();
-                });
+                 });
+            }
+            catch (Exception e) {
+                onRemoving.run();
+
+                throw e;
+            }
         });
     }
 }