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