Author: markt
Date: Thu Jul 12 21:27:13 2012
New Revision: 1360957

URL: http://svn.apache.org/viewvc?rev=1360957&view=rev
Log:
Fix FindBugs issues (sync on mutated object)

Modified:
    tomcat/trunk/java/org/apache/catalina/core/StandardServer.java
    tomcat/trunk/java/org/apache/catalina/core/StandardService.java

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardServer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardServer.java?rev=1360957&r1=1360956&r2=1360957&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardServer.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardServer.java Thu Jul 12 
21:27:13 2012
@@ -128,6 +128,7 @@ public final class StandardServer extend
      * The set of Services associated with this Server.
      */
     private Service services[] = new Service[0];
+    private final Object servicesLock = new Object();
 
 
     /**
@@ -336,7 +337,7 @@ public final class StandardServer extend
 
         service.setServer(this);
 
-        synchronized (services) {
+        synchronized (servicesLock) {
             Service results[] = new Service[services.length + 1];
             System.arraycopy(services, 0, results, 0, services.length);
             results[services.length] = service;
@@ -518,7 +519,7 @@ public final class StandardServer extend
         if (name == null) {
             return (null);
         }
-        synchronized (services) {
+        synchronized (servicesLock) {
             for (int i = 0; i < services.length; i++) {
                 if (name.equals(services[i].getName())) {
                     return (services[i]);
@@ -536,7 +537,7 @@ public final class StandardServer extend
     @Override
     public Service[] findServices() {
 
-        return (services);
+        return services;
 
     }
 
@@ -561,7 +562,7 @@ public final class StandardServer extend
     @Override
     public void removeService(Service service) {
 
-        synchronized (services) {
+        synchronized (servicesLock) {
             int j = -1;
             for (int i = 0; i < services.length; i++) {
                 if (service == services[i]) {
@@ -739,7 +740,7 @@ public final class StandardServer extend
         globalNamingResources.start();
 
         // Start our defined Services
-        synchronized (services) {
+        synchronized (servicesLock) {
             for (int i = 0; i < services.length; i++) {
                 services[i].start();
             }

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardService.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardService.java?rev=1360957&r1=1360956&r2=1360957&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardService.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardService.java Thu Jul 12 
21:27:13 2012
@@ -80,6 +80,7 @@ public class StandardService extends Lif
      * The set of Connectors associated with this Service.
      */
     protected Connector connectors[] = new Connector[0];
+    private final Object connectorsLock = new Object();
 
     /**
      *
@@ -204,7 +205,7 @@ public class StandardService extends Lif
     @Override
     public void addConnector(Connector connector) {
 
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             connector.setService(this);
             Connector results[] = new Connector[connectors.length + 1];
             System.arraycopy(connectors, 0, results, 0, connectors.length);
@@ -254,7 +255,7 @@ public class StandardService extends Lif
     @Override
     public Connector[] findConnectors() {
 
-        return (connectors);
+        return connectors;
 
     }
 
@@ -269,7 +270,7 @@ public class StandardService extends Lif
     @Override
     public void removeConnector(Connector connector) {
 
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             int j = -1;
             for (int i = 0; i < connectors.length; i++) {
                 if (connector == connectors[i]) {
@@ -426,7 +427,7 @@ public class StandardService extends Lif
         }
 
         // Start our defined Connectors second
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             for (Connector connector: connectors) {
                 try {
                     // If it has already failed, don't try and start it
@@ -455,7 +456,7 @@ public class StandardService extends Lif
     protected void stopInternal() throws LifecycleException {
 
         // Pause connectors first
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             for (Connector connector: connectors) {
                 try {
                     connector.pause();
@@ -479,7 +480,7 @@ public class StandardService extends Lif
         }
 
         // Now stop the connectors
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             for (Connector connector: connectors) {
                 if (!LifecycleState.STARTED.equals(
                         connector.getState())) {
@@ -528,7 +529,7 @@ public class StandardService extends Lif
         }
 
         // Initialize our defined Connectors
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             for (Connector connector : connectors) {
                 try {
                     connector.init();
@@ -547,7 +548,7 @@ public class StandardService extends Lif
     @Override
     protected void destroyInternal() throws LifecycleException {
         // Destroy our defined Connectors
-        synchronized (connectors) {
+        synchronized (connectorsLock) {
             for (Connector connector : connectors) {
                 try {
                     connector.destroy();



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

Reply via email to