You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/05/01 19:44:27 UTC

svn commit: r940089 - in /tomcat/trunk/java/org/apache/catalina/loader: LocalStrings.properties WebappLoader.java

Author: markt
Date: Sat May  1 17:44:26 2010
New Revision: 940089

URL: http://svn.apache.org/viewvc?rev=940089&view=rev
Log:
Remove the controller - MBean registration will always happen in init()/destroy() after Lifecycle refactoring
Fix a handful of Eclipse/FindBugs warnings

Modified:
    tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java

Modified: tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties?rev=940089&r1=940088&r2=940089&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties Sat May  1 17:44:26 2010
@@ -65,4 +65,5 @@ webappLoader.starting=Starting this Load
 webappLoader.stopping=Stopping this Loader
 webappLoader.failModifiedCheck=Error tracking modifications
 webappLoader.copyFailure=Failed to copy resources
+webappLoader.mkdirFailure=Failed to create destination directory to copy resources
 webappLoader.namingFailure=Failed to access resource {0}

Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=940089&r1=940088&r2=940089&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java Sat May  1 17:44:26 2010
@@ -271,8 +271,8 @@ public class WebappLoader extends Lifecy
 
         boolean oldDelegate = this.delegate;
         this.delegate = delegate;
-        support.firePropertyChange("delegate", new Boolean(oldDelegate),
-                                   new Boolean(this.delegate));
+        support.firePropertyChange("delegate", Boolean.valueOf(oldDelegate),
+                                   Boolean.valueOf(this.delegate));
 
     }
 
@@ -332,8 +332,8 @@ public class WebappLoader extends Lifecy
         boolean oldReloadable = this.reloadable;
         this.reloadable = reloadable;
         support.firePropertyChange("reloadable",
-                                   new Boolean(oldReloadable),
-                                   new Boolean(this.reloadable));
+                                   Boolean.valueOf(oldReloadable),
+                                   Boolean.valueOf(this.reloadable));
 
     }
 
@@ -542,7 +542,6 @@ public class WebappLoader extends Lifecy
                     oname=new ObjectName(ctx.getEngineName() + ":type=Loader,path=" +
                                 path + ",host=" + ctx.getParent().getName());
                     Registry.getRegistry(null, null).registerComponent(this, oname, null);
-                    controller=oname;
                 } catch (Exception e) {
                     log.error("Error registering loader", e );
                 }
@@ -558,11 +557,8 @@ public class WebappLoader extends Lifecy
 
     @Override
     protected void destroyInternal() {
-        if( controller==oname ) {
-            // Self-registration, undo it
-            Registry.getRegistry(null, null).unregisterComponent(oname);
-            oname = null;
-        }
+        Registry.getRegistry(null, null).unregisterComponent(oname);
+        oname = null;
     }
 
     /**
@@ -813,6 +809,7 @@ public class WebappLoader extends Lifecy
                         String path = libDir.getCanonicalPath();
                         classLoader.addPermission(path);
                     } catch (IOException e) {
+                        // Ignore
                     }
                 }
 
@@ -825,6 +822,7 @@ public class WebappLoader extends Lifecy
                             String path = libDir.getCanonicalPath();
                             classLoader.addPermission(path);
                         } catch (IOException e) {
+                            // Ignore
                         }
                     }
                     if (classesURL != null) {
@@ -833,6 +831,7 @@ public class WebappLoader extends Lifecy
                             String path = classesDir.getCanonicalPath();
                             classLoader.addPermission(path);
                         } catch (IOException e) {
+                            // Ignore
                         }
                     }
                 }
@@ -840,6 +839,7 @@ public class WebappLoader extends Lifecy
             }
 
         } catch (MalformedURLException e) {
+            // Ignore
         }
 
     }
@@ -903,7 +903,9 @@ public class WebappLoader extends Lifecy
             } else {
 
                 classRepository = new File(workDir, classesPath);
-                classRepository.mkdirs();
+                if (!classRepository.mkdirs())
+                    throw new IOException(
+                            sm.getString("webappLoader.mkdirFailure"));
                 if (!copyDir(classes, classRepository)) {
                     throw new IOException(
                             sm.getString("webappLoader.copyFailure"));
@@ -951,7 +953,9 @@ public class WebappLoader extends Lifecy
             } else {
                 copyJars = true;
                 destDir = new File(workDir, libPath);
-                destDir.mkdirs();
+                if (!destDir.mkdirs())
+                    throw new IOException(
+                            sm.getString("webappLoader.mkdirFailure"));
             }
 
             // Looking up directory /WEB-INF/lib in the context
@@ -1056,7 +1060,6 @@ public class WebappLoader extends Lifecy
                 String cp=getClasspath( loader );
                 if( cp==null ) {
                     log.info( "Unknown loader " + loader + " " + loader.getClass());
-                    break;
                 } else {
                     if (n > 0) 
                         classpath.append(File.pathSeparator);
@@ -1141,7 +1144,8 @@ public class WebappLoader extends Lifecy
                     if (!copy((InputStream) object, os))
                         return false;
                 } else if (object instanceof DirContext) {
-                    currentFile.mkdir();
+                    if (!currentFile.mkdir())
+                        return false;
                     if (!copyDir((DirContext) object, currentFile))
                         return false;
                 }
@@ -1187,7 +1191,6 @@ public class WebappLoader extends Lifecy
         org.apache.juli.logging.LogFactory.getLog( WebappLoader.class );
 
     private ObjectName oname;
-    private ObjectName controller;
 
     public ObjectName preRegister(MBeanServer server,
                                   ObjectName name) throws Exception {
@@ -1196,20 +1199,14 @@ public class WebappLoader extends Lifecy
     }
 
     public void postRegister(Boolean registrationDone) {
+        // NOOP
     }
 
     public void preDeregister() throws Exception {
+        // NOOP
     }
 
     public void postDeregister() {
+        // NOOP
     }
-
-    public ObjectName getController() {
-        return controller;
-    }
-
-    public void setController(ObjectName controller) {
-        this.controller = controller;
-    }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r940089 - in /tomcat/trunk/java/org/apache/catalina/loader: LocalStrings.properties WebappLoader.java

Posted by Sylvain Laurent <sy...@m4x.org>.
I think that this commit broke the ability to stop and start a context. When I start it after having stopped it, I get a 
LifecycleException:  An invalid Lifecycle transition was attempted ([before_start]) for component [WebappLoader[/testWeb]] in state [DESTROYED]

Sylvain

On 1 mai 2010, at 19:44, markt@apache.org wrote:

> Author: markt
> Date: Sat May  1 17:44:26 2010
> New Revision: 940089
> 
> URL: http://svn.apache.org/viewvc?rev=940089&view=rev
> Log:
> Remove the controller - MBean registration will always happen in init()/destroy() after Lifecycle refactoring
> Fix a handful of Eclipse/FindBugs warnings
> 
> Modified:
>    tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
>    tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java
> 
> Modified: tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties?rev=940089&r1=940088&r2=940089&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties (original)
> +++ tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties Sat May  1 17:44:26 2010
> @@ -65,4 +65,5 @@ webappLoader.starting=Starting this Load
> webappLoader.stopping=Stopping this Loader
> webappLoader.failModifiedCheck=Error tracking modifications
> webappLoader.copyFailure=Failed to copy resources
> +webappLoader.mkdirFailure=Failed to create destination directory to copy resources
> webappLoader.namingFailure=Failed to access resource {0}
> 
> Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=940089&r1=940088&r2=940089&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java Sat May  1 17:44:26 2010
> @@ -271,8 +271,8 @@ public class WebappLoader extends Lifecy
> 
>         boolean oldDelegate = this.delegate;
>         this.delegate = delegate;
> -        support.firePropertyChange("delegate", new Boolean(oldDelegate),
> -                                   new Boolean(this.delegate));
> +        support.firePropertyChange("delegate", Boolean.valueOf(oldDelegate),
> +                                   Boolean.valueOf(this.delegate));
> 
>     }
> 
> @@ -332,8 +332,8 @@ public class WebappLoader extends Lifecy
>         boolean oldReloadable = this.reloadable;
>         this.reloadable = reloadable;
>         support.firePropertyChange("reloadable",
> -                                   new Boolean(oldReloadable),
> -                                   new Boolean(this.reloadable));
> +                                   Boolean.valueOf(oldReloadable),
> +                                   Boolean.valueOf(this.reloadable));
> 
>     }
> 
> @@ -542,7 +542,6 @@ public class WebappLoader extends Lifecy
>                     oname=new ObjectName(ctx.getEngineName() + ":type=Loader,path=" +
>                                 path + ",host=" + ctx.getParent().getName());
>                     Registry.getRegistry(null, null).registerComponent(this, oname, null);
> -                    controller=oname;
>                 } catch (Exception e) {
>                     log.error("Error registering loader", e );
>                 }
> @@ -558,11 +557,8 @@ public class WebappLoader extends Lifecy
> 
>     @Override
>     protected void destroyInternal() {
> -        if( controller==oname ) {
> -            // Self-registration, undo it
> -            Registry.getRegistry(null, null).unregisterComponent(oname);
> -            oname = null;
> -        }
> +        Registry.getRegistry(null, null).unregisterComponent(oname);
> +        oname = null;
>     }
> 
>     /**
> @@ -813,6 +809,7 @@ public class WebappLoader extends Lifecy
>                         String path = libDir.getCanonicalPath();
>                         classLoader.addPermission(path);
>                     } catch (IOException e) {
> +                        // Ignore
>                     }
>                 }
> 
> @@ -825,6 +822,7 @@ public class WebappLoader extends Lifecy
>                             String path = libDir.getCanonicalPath();
>                             classLoader.addPermission(path);
>                         } catch (IOException e) {
> +                            // Ignore
>                         }
>                     }
>                     if (classesURL != null) {
> @@ -833,6 +831,7 @@ public class WebappLoader extends Lifecy
>                             String path = classesDir.getCanonicalPath();
>                             classLoader.addPermission(path);
>                         } catch (IOException e) {
> +                            // Ignore
>                         }
>                     }
>                 }
> @@ -840,6 +839,7 @@ public class WebappLoader extends Lifecy
>             }
> 
>         } catch (MalformedURLException e) {
> +            // Ignore
>         }
> 
>     }
> @@ -903,7 +903,9 @@ public class WebappLoader extends Lifecy
>             } else {
> 
>                 classRepository = new File(workDir, classesPath);
> -                classRepository.mkdirs();
> +                if (!classRepository.mkdirs())
> +                    throw new IOException(
> +                            sm.getString("webappLoader.mkdirFailure"));
>                 if (!copyDir(classes, classRepository)) {
>                     throw new IOException(
>                             sm.getString("webappLoader.copyFailure"));
> @@ -951,7 +953,9 @@ public class WebappLoader extends Lifecy
>             } else {
>                 copyJars = true;
>                 destDir = new File(workDir, libPath);
> -                destDir.mkdirs();
> +                if (!destDir.mkdirs())
> +                    throw new IOException(
> +                            sm.getString("webappLoader.mkdirFailure"));
>             }
> 
>             // Looking up directory /WEB-INF/lib in the context
> @@ -1056,7 +1060,6 @@ public class WebappLoader extends Lifecy
>                 String cp=getClasspath( loader );
>                 if( cp==null ) {
>                     log.info( "Unknown loader " + loader + " " + loader.getClass());
> -                    break;
>                 } else {
>                     if (n > 0) 
>                         classpath.append(File.pathSeparator);
> @@ -1141,7 +1144,8 @@ public class WebappLoader extends Lifecy
>                     if (!copy((InputStream) object, os))
>                         return false;
>                 } else if (object instanceof DirContext) {
> -                    currentFile.mkdir();
> +                    if (!currentFile.mkdir())
> +                        return false;
>                     if (!copyDir((DirContext) object, currentFile))
>                         return false;
>                 }
> @@ -1187,7 +1191,6 @@ public class WebappLoader extends Lifecy
>         org.apache.juli.logging.LogFactory.getLog( WebappLoader.class );
> 
>     private ObjectName oname;
> -    private ObjectName controller;
> 
>     public ObjectName preRegister(MBeanServer server,
>                                   ObjectName name) throws Exception {
> @@ -1196,20 +1199,14 @@ public class WebappLoader extends Lifecy
>     }
> 
>     public void postRegister(Boolean registrationDone) {
> +        // NOOP
>     }
> 
>     public void preDeregister() throws Exception {
> +        // NOOP
>     }
> 
>     public void postDeregister() {
> +        // NOOP
>     }
> -
> -    public ObjectName getController() {
> -        return controller;
> -    }
> -
> -    public void setController(ObjectName controller) {
> -        this.controller = controller;
> -    }
> -
> }
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org