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 <[email protected]>
Authored: Fri Oct 11 10:02:41 2013 +0200
Committer: Mark Struberg <[email protected]>
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

Reply via email to