### Eclipse Workspace Patch 1.0
#P main
Index: src/main/java/org/geoserver/catalog/impl/DefaultCatalogFacade.java
===================================================================
--- src/main/java/org/geoserver/catalog/impl/DefaultCatalogFacade.java	(revision 15501)
+++ src/main/java/org/geoserver/catalog/impl/DefaultCatalogFacade.java	(working copy)
@@ -14,6 +14,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.commons.collections.MultiHashMap;
 import org.geoserver.catalog.Catalog;
@@ -96,7 +97,7 @@
     /**
      * layers
      */
-    protected List<LayerInfo> layers = new ArrayList();
+    protected List<LayerInfo> layers = new CopyOnWriteArrayList<LayerInfo>();
 
     /**
      * maps
@@ -384,17 +385,13 @@
     //
     public LayerInfo add(LayerInfo layer) {
         resolve(layer);
-        synchronized(layers) {
-            layers.add(layer);
-        }
+        layers.add(layer);
         
         return ModificationProxy.create(layer, LayerInfo.class);
     }
     
     public void remove(LayerInfo layer) {
-        synchronized(layers) {
-            layers.remove(unwrap(layer));
-        }
+        layers.remove(unwrap(layer));
     }
     
     public void save(LayerInfo layer) {
@@ -406,8 +403,7 @@
     }
     
     public LayerInfo getLayer(String id) {
-        for (Iterator l = layers.iterator(); l.hasNext();) {
-            LayerInfo layer = (LayerInfo) l.next();
+        for (LayerInfo layer : layers) {
             if (id.equals(layer.getId())) {
                 return ModificationProxy.create( layer, LayerInfo.class );
             }
@@ -417,9 +413,7 @@
     }
     
     public LayerInfo getLayerByName(String name) {
-      
-        for (Iterator l = layers.iterator(); l.hasNext();) {
-            LayerInfo layer = (LayerInfo) l.next();
+        for (LayerInfo layer : layers) {
             if ( name.equals( layer.getName() ) ) {
                 return ModificationProxy.create( layer, LayerInfo.class );
             }
@@ -430,8 +424,7 @@
     
     public List<LayerInfo> getLayers(ResourceInfo resource) {
         List<LayerInfo> matches = new ArrayList<LayerInfo>();
-        for (Iterator l = layers.iterator(); l.hasNext();) {
-            LayerInfo layer = (LayerInfo) l.next();
+        for (LayerInfo layer : layers) {
             if ( resource.equals( layer.getResource() ) ) {
                 matches.add( layer );
             }
@@ -442,8 +435,7 @@
     
     public List<LayerInfo> getLayers(StyleInfo style) {
         List<LayerInfo> matches = new ArrayList<LayerInfo>();
-        for (Iterator l = layers.iterator(); l.hasNext();) {
-            LayerInfo layer = (LayerInfo) l.next();
+        for (LayerInfo layer : layers) {
             if ( style.equals( layer.getDefaultStyle() ) || layer.getStyles().contains( style ) ) {
                 matches.add( layer );
             }
