commit | 64d7e66d76b4818e33c282e4a0d9697c0e1c0f16 | [log] [tgz] |
---|---|---|
author | Carlos Sierra Andrés <csierra@apache.org> | Fri Mar 23 16:24:54 2018 +0000 |
committer | Carlos Sierra Andrés <csierra@apache.org> | Fri Mar 23 16:24:54 2018 +0000 |
tree | daeb608cd1af6c9bb90dcbca79b0b8027db8fa8e | |
parent | c0a65e787fb244d0a8ed08e725e36d2ac141c761 [diff] |
[Component-DSL] Sent notHighest after highest In the event that a service is substituted by another service with higher ranking first the existing service is signalled removed, then the new service is sent down the `highest pipe` and then the old service is sent down the `notHighestPipe` git-svn-id: https://svn.apache.org/repos/asf/aries/trunk@1827580 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/HighestRankingOSGi.java b/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/HighestRankingOSGi.java index fb0d8eb..918433a 100644 --- a/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/HighestRankingOSGi.java +++ b/component-dsl/src/main/java/org/apache/aries/osgi/functional/internal/HighestRankingOSGi.java
@@ -56,12 +56,14 @@ if (old != null) { old._runnable.run(); - - old._runnable = notHighestPad.publish(old._t); } tuple._runnable = highestPipe.apply(t); + if (old != null) { + old._runnable = notHighestPad.publish(old._t); + } + sent.set(tuple); } else { tuple._runnable = notHighestPad.publish(t);