/** * @see org.geowebcache.config.Configuration#modifyLayer(org.geowebcache.layer.TileLayer) */ @Override public synchronized void modifyLayer(TileLayer tl) throws NoSuchElementException { checkNotNull(tl, "TileLayer is null"); checkArgument(canSave(tl), "Can't save TileLayer of type ", tl.getClass()); GeoServerTileLayer tileLayer = (GeoServerTileLayer) tl; checkNotNull(tileLayer.getInfo(), "GeoServerTileLayerInfo is null"); checkNotNull(tileLayer.getInfo().getId(), "id is null"); checkNotNull(tileLayer.getInfo().getName(), "name is null"); final GeoServerTileLayerInfo info = tileLayer.getInfo(); lock.writeLock().lock(); try { final String layerId = info.getId(); // check pendingModifications too to catch unsaved adds boolean exists = pendingModications.containsKey(layerId) || tileLayerCatalog.exists(layerId); checkArgument(exists, "No GeoServerTileLayer named '" + info.getName() + "' exists"); pendingModications.put(layerId, info); layerCache.invalidate(layerId); } finally { lock.writeLock().unlock(); } }
/** @see TileLayerConfiguration#modifyLayer(TileLayer) */ @Override public synchronized void modifyLayer(TileLayer tl) throws NoSuchElementException { checkNotNull(tl, "TileLayer is null"); checkArgument(canSave(tl), "Can't save TileLayer of type ", tl.getClass()); GeoServerTileLayer tileLayer = (GeoServerTileLayer) tl; checkNotNull(tileLayer.getInfo(), "GeoServerTileLayerInfo is null"); checkNotNull(tileLayer.getInfo().getId(), "id is null"); checkNotNull(tileLayer.getInfo().getName(), "name is null"); final GeoServerTileLayerInfo info = tileLayer.getInfo(); lock.acquireWriteLock(); try { final String layerId = info.getId(); // check pendingModifications too to catch unsaved adds boolean exists = pendingModications.containsKey(layerId) || tileLayerCatalog.exists(layerId); if (!exists) { throw new NoSuchElementException( "No GeoServerTileLayer named '" + info.getName() + "' exists"); } pendingModications.put(layerId, info); layerCache.invalidate(layerId); } finally { lock.releaseWriteLock(); } save(); }
pendingModications.containsKey(layerId) || tileLayerCatalog.exists(layerId); checkArgument(exists, "No GeoServerTileLayer named '" + info.getName() + "' exists"); pendingModications.put(layerId, info);
when(tileLayerCatalog.getLayerById(group2.getId())).thenReturn(groupInfo2); when(tileLayerCatalog.exists(layer1.getId())).thenReturn(true); when(tileLayerCatalog.exists(layer2.getId())).thenReturn(true); when(tileLayerCatalog.exists(group1.getId())).thenReturn(true); when(tileLayerCatalog.exists(group2.getId())).thenReturn(true);