Author: rmannibucau
Date: Sun Mar  2 07:19:33 2014
New Revision: 1573266

URL: http://svn.apache.org/r1573266
Log:
TOMEE-1135 cxf changed a bit the way lifecycle is handled so adapting our code

Modified:
    
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBPerRequestPojoResourceProvider.java

Modified: 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBPerRequestPojoResourceProvider.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBPerRequestPojoResourceProvider.java?rev=1573266&r1=1573265&r2=1573266&view=diff
==============================================================================
--- 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBPerRequestPojoResourceProvider.java
 (original)
+++ 
tomee/tomee/trunk/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/OpenEJBPerRequestPojoResourceProvider.java
 Sun Mar  2 07:19:33 2014
@@ -41,7 +41,11 @@ import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
-import java.lang.reflect.*;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -59,6 +63,7 @@ public class OpenEJBPerRequestPojoResour
 
     private BeanCreator creator;
     private final Collection<Class<?>> contextTypes = new HashSet<Class<?>>();
+    private Object instance = null;
 
     public OpenEJBPerRequestPojoResourceProvider(final ClassLoader loader, 
final Class<?> clazz, final Collection<Injection> injectionCollection, final 
Context initialContext, final WebBeansContext owbCtx) {
         injections = injectionCollection;
@@ -127,24 +132,27 @@ public class OpenEJBPerRequestPojoResour
         if (creator == null) {
             creator = new DefaultBeanCreator(m);
         }
+        m.put(BeanCreator.class, creator);
 
         // important to switch of classloader to get the right InitialContext
         final ClassLoader oldLoader = 
Thread.currentThread().getContextClassLoader();
         Thread.currentThread().setContextClassLoader(classLoader);
         try {
-            return creator.create();
+            instance = creator.create();
+            return instance;
         } catch (final NoBeanFoundException nbfe) {
             creator = new DefaultBeanCreator(m);
-            return creator.create();
+            return instance = creator.create();
         } finally {
             Thread.currentThread().setContextClassLoader(oldLoader);
         }
     }
 
-    @Override
+    @Override // this method is not linked to o to consider it stateless
     public void releaseInstance(final Message m, final Object o) {
-        if (creator != null) {
-            creator.release();
+        final BeanCreator c = m.get(BeanCreator.class);
+        if (c != null) {
+            c.release();
         }
     }
 


Reply via email to