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 2020/09/11 16:17:07 UTC

[aries-jax-rs-whiteboard] 03/06: [ARIES-2001] Dispose the serviceTuple as soon as the registration is complete

This is an automated email from the ASF dual-hosted git repository.

csierra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-jax-rs-whiteboard.git

commit 58d3f09e2fad4c2a1f1b9c0d3c5527b104e207b2
Author: Carlos Sierra Andrés <ca...@liferay.com>
AuthorDate: Fri Sep 11 09:10:27 2020 +0200

    [ARIES-2001] Dispose the serviceTuple as soon as the registration is complete
---
 .../aries/jax/rs/whiteboard/internal/Whiteboard.java     | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
index 6fd10b5..a32a3f5 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java
@@ -333,7 +333,7 @@ public class Whiteboard {
         }
     }
 
-    private static <T> OSGi<ResourceProvider> getResourceProvider(
+    private static <T> OSGi<? extends ResourceProvider> getResourceProvider(
             ServiceTuple<T> serviceTuple) {
 
         CachingServiceReference<T> cachingServiceReference =
@@ -362,10 +362,16 @@ public class Whiteboard {
             }
 
             return just(
-                    new PrototypeServiceReferenceResourceProvider(
-                        cachingServiceReference,
-                        serviceTuple.getService().getClass(),
-                        serviceTuple.getServiceObjects()));
+                new PrototypeServiceReferenceResourceProvider(
+                    cachingServiceReference,
+                    serviceTuple.getService().getClass(),
+                    serviceTuple.getServiceObjects())
+            ).effects(
+                __ -> {},
+                __ -> serviceTuple.dispose(),
+                __ -> {},
+                __ -> {}
+            );
         }
         else {
             return just(