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 @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