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/07 02:00:46 UTC
svn commit: r634489 - in
/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb:
EjbDeployment.java GeronimoThreadContextListener.java
Author: dwoods
Date: Thu Mar 6 17:00:45 2008
New Revision: 634489
URL: http://svn.apache.org/viewvc?rev=634489&view=rev
Log:
GERONIMO-3780 - MDB unable to access JNDI in ejbPostCreate
Modified:
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java?rev=634489&r1=634488&r2=634489&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbDeployment.java Thu Mar 6 17:00:45 2008
@@ -279,13 +279,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/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java?rev=634489&r1=634488&r2=634489&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoThreadContextListener.java Thu Mar 6 17:00:45 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;