Author: rmannibucau
Date: Tue Jun 19 19:26:42 2012
New Revision: 1351808
URL: http://svn.apache.org/viewvc?rev=1351808&view=rev
Log:
if restarting don't undeploy the webapp
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java?rev=1351808&r1=1351807&r2=1351808&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
Tue Jun 19 19:26:42 2012
@@ -39,4 +39,8 @@ public class LazyStopWebappClassLoader e
public void restarted() {
restarting = false;
}
+
+ public boolean isRestarting() {
+ return restarting;
+ }
}
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1351808&r1=1351807&r2=1351808&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
Tue Jun 19 19:26:42 2012
@@ -830,6 +830,12 @@ public class TomcatWebAppBuilder impleme
private static boolean undeploy(final StandardContext standardContext,
final Container host) {
final Container child = host.findChild(standardContext.getName());
+ final LazyStopWebappClassLoader lazyStopWebappClassLoader =
lazyClassLoader(child);
+
+ if (lazyStopWebappClassLoader != null &&
lazyStopWebappClassLoader.isRestarting()) { // skip undeployment
+ return true;
+ }
+
if (child != null) {
host.removeChild(standardContext);
return true;
@@ -837,6 +843,20 @@ public class TomcatWebAppBuilder impleme
return false;
}
+ private static LazyStopWebappClassLoader lazyClassLoader(final Container
child) {
+ final Loader loader = child.getLoader();
+ if (loader == null || !(loader instanceof LazyStopLoader)) {
+ return null;
+ }
+
+ final ClassLoader old = ((LazyStopLoader) loader).getStopClassLoader();
+ if (old == null || !(old instanceof LazyStopWebappClassLoader)) {
+ return null;
+ }
+
+ return (LazyStopWebappClassLoader) old;
+ }
+
private JndiEncBuilder getJndiBuilder(final ClassLoader classLoader, final
WebAppInfo webAppInfo, final Set<Injection> injections) throws OpenEJBException
{
return new JndiEncBuilder(webAppInfo.jndiEnc, injections,
webAppInfo.moduleId, "Bean", null, webAppInfo.uniqueId, classLoader);
}
@@ -1099,15 +1119,12 @@ public class TomcatWebAppBuilder impleme
}
}
- final Loader loader = standardContext.getLoader();
- if (loader != null && loader instanceof LazyStopLoader) {
- final ClassLoader old = ((LazyStopLoader)
loader).getStopClassLoader();
- if (old != null && old instanceof LazyStopWebappClassLoader) {
- try {
- ((LazyStopWebappClassLoader) old).internalStop();
- } catch (LifecycleException e) {
- logger.error("error stopping classloader of webapp " +
standardContext.getName(), e);
- }
+ final LazyStopWebappClassLoader old = lazyClassLoader(standardContext);
+ if (old != null) {
+ try {
+ old.internalStop();
+ } catch (LifecycleException e) {
+ logger.error("error stopping classloader of webapp " +
standardContext.getName(), e);
}
}
removeContextInfo(standardContext);