You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2013/10/11 10:05:12 UTC

git commit: DELTASPIKE-425 DependentProvider#destroy() must not destroy NormalScoped beans

Updated Branches:
  refs/heads/master e8148110e -> 403ce9425


DELTASPIKE-425 DependentProvider#destroy() must not destroy NormalScoped beans


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/403ce942
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/403ce942
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/403ce942

Branch: refs/heads/master
Commit: 403ce94258a696dbf8377f5318183abef8248b78
Parents: e814811
Author: Mark Struberg <st...@apache.org>
Authored: Fri Oct 11 10:02:41 2013 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Fri Oct 11 10:02:41 2013 +0200

----------------------------------------------------------------------
 .../deltaspike/core/api/provider/DependentProvider.java   | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/403ce942/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/DependentProvider.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/DependentProvider.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/DependentProvider.java
index ae76a04..3b71678 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/DependentProvider.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/DependentProvider.java
@@ -59,9 +59,17 @@ public class DependentProvider<T> implements Provider<T>, Serializable
         return instance;
     }
 
+    /**
+     * This method will properly destroy the &#064;Dependent scoped instance.
+     * It will have no effect if the bean is NormalScoped as those have their
+     * own lifecycle which we must not disrupt.
+     */
     public void destroy()
     {
-        bean.destroy(instance, creationalContext);
+        if (!BeanManagerProvider.getInstance().getBeanManager().isNormalScope(bean.getScope()))
+        {
+            bean.destroy(instance, creationalContext);
+        }
     }
 
     private void writeObject(ObjectOutputStream out) throws IOException