Author: struberg
Date: Tue Jun 6 21:11:41 2017
New Revision: 1797825
URL: http://svn.apache.org/viewvc?rev=1797825&view=rev
Log:
OWB-1182 fix Instance cleanup handling
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/instance/InstanceImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/instance/InstanceImpl.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/instance/InstanceImpl.java?rev=1797825&r1=1797824&r2=1797825&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/instance/InstanceImpl.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/instance/InstanceImpl.java
Tue Jun 6 21:11:41 2017
@@ -307,10 +307,6 @@ public class InstanceImpl<T> implements
creationalContexts = new IdentityHashMap<Object,
CreationalContextImpl<?>>();
}
creationalContexts.put(reference, creationalContext);
- if (WebBeansUtil.isDependent(bean))
- {
- parentCreationalContext.addDependent(bean, reference);
- }
return reference;
}
finally
@@ -364,6 +360,17 @@ public class InstanceImpl<T> implements
return builder.toString();
}
+ public void release()
+ {
+ if (creationalContexts != null)
+ {
+ for (CreationalContextImpl<?> creationalContext :
creationalContexts.values())
+ {
+ creationalContext.release();
+ }
+ }
+ }
+
private static class InstanceInjectionPoint implements InjectionPoint,
Serializable
{
private InjectionPoint delegate;
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java?rev=1797825&r1=1797824&r2=1797825&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java
Tue Jun 6 21:11:41 2017
@@ -38,7 +38,8 @@ public class InstanceProducer<T> extends
private Class<Instance<T>> returnType;
private Set<Annotation> qualifiers;
private WebBeansContext webBeansContext;
-
+
+
public InstanceProducer(Class<Instance<T>> returnType, Set<Annotation>
qualifiers, WebBeansContext webBeansContext)
{
this.returnType = returnType;
@@ -55,7 +56,7 @@ public class InstanceProducer<T> extends
InjectionPoint injectionPoint = null;
if (creationalContext instanceof CreationalContextImpl)
{
- creationalContextImpl =
(CreationalContextImpl<Instance<T>>)creationalContext;
+ creationalContextImpl = creationalContext;
}
else
{
@@ -88,4 +89,12 @@ public class InstanceProducer<T> extends
}
}
}
+
+ @Override
+ public void dispose(Instance<T> instance)
+ {
+ super.dispose(instance);
+
+ ((InstanceImpl<T>) instance).release();
+ }
}