You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2008/03/05 20:26:15 UTC

svn commit: r633987 - in /geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb: EjbDeployment.java GeronimoThreadContextListener.java

Author: dwoods
Date: Wed Mar  5 11:26:13 2008
New Revision: 633987

URL: http://svn.apache.org/viewvc?rev=633987&view=rev
Log:
GERONIMO-3780 - MDB unable to access JNDI in ejbPostCreate

Modified:
    geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java
    geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java

Modified: geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java?rev=633987&r1=633986&r2=633987&view=diff
==============================================================================
--- geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java (original)
+++ geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java Wed Mar  5 11:26:13 2008
@@ -280,13 +280,17 @@
         if (componentContext != null) {
             javaCompSubContext.bind("geronimo", componentContext);
         }
-        deploymentInfo.set(EjbDeployment.class, this);
+        synchronized(deploymentInfo){
+            deploymentInfo.set(EjbDeployment.class, this);
+       	    deploymentInfo.notifyAll();
+        }
     }
 
     protected void stop() {
         if (deploymentInfo != null) {
-            deploymentInfo.set(EjbDeployment.class, null);
-            deploymentInfo = null;
-        }
+	    deploymentInfo.setDestroyed(true);
+	    deploymentInfo.set(EjbDeployment.class, null);
+	    deploymentInfo = null;
+	}	
     }
 }

Modified: geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java?rev=633987&r1=633986&r2=633987&view=diff
==============================================================================
--- geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java (original)
+++ geronimo/server/branches/2.0/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java Wed Mar  5 11:26:13 2008
@@ -57,7 +57,19 @@
     public void contextEntered(ThreadContext oldContext, ThreadContext newContext) {
         CoreDeploymentInfo deploymentInfo = newContext.getDeploymentInfo();
         if (deploymentInfo == null) return;
-
+        if (deploymentInfo.get(EjbDeployment.class) == null) {
+	    synchronized (deploymentInfo) {
+                if (deploymentInfo.get(EjbDeployment.class) == null) {
+                    if (!deploymentInfo.isDestroyed()) {
+                        try {
+                            deploymentInfo.wait();
+                        } catch (InterruptedException e) {
+                        log.warn("Wait on deploymentInfo interrupted unexpectedly");
+                        }
+                    }
+                }
+            }
+        } 
         EjbDeployment ejbDeployment = deploymentInfo.get(EjbDeployment.class);
         if (ejbDeployment == null) return;