Source:
<code>private ResponseEntity<?> handleDoSeedPost(Map<String, String> form, TileLayer tl) throws RestException, GeoWebCacheException { String gridSetId = form.get("gridSetId"); BoundingBox bounds = null; <START> if (!form.get("minX").equalsIgnoreCase("")) { <END> bounds = new BoundingBox(parseDouble(form, "minX"), parseDouble(form, "minY"), parseDouble(form, "maxX"), parseDouble(form, "maxY")); } else { GridSubset subset = tl.getGridSubset(gridSetId); bounds = subset.getOriginalExtent(); } int threadCount = Integer.parseInt(form.get("threadCount")); int zoomStart = Integer.parseInt(form.get("zoomStart")); int zoomStop = Integer.parseInt(form.get("zoomStop")); String format = form.get("format"); Map<String, String> fullParameters; { Map<String, String> parameters = new HashMap<String, String>();; Set<String> paramNames = form.keySet(); String prefix = "parameter_"; for (String name : paramNames) { if (name.startsWith(prefix)) { String paramName = name.substring(prefix.length()); String value = form.get(name); parameters.put(paramName, value); } } fullParameters = tl.getModifiableParameters(parameters, "UTF-8"); } GWCTask.TYPE type = GWCTask.TYPE.valueOf(form.get("type").toUpperCase()); final String layerName = tl.getName(); SeedRequest sr = new SeedRequest(layerName, bounds, gridSetId, threadCount, zoomStart, zoomStop, format, type, fullParameters); TileRange tr = TileBreeder.createTileRange(sr, tl); GWCTask[] tasks; try { tasks = seeder.createTasks(tr, tl, sr.getType(), sr.getThreadCount(), sr.getFilterUpdate()); } catch (GeoWebCacheException e) { throw new RestException(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } seeder.dispatchTasks(tasks); try { Thread.sleep(500); } catch (InterruptedException e) { } return new ResponseEntity<Object>(this.makeResponsePage(tl), getHeaders(), HttpStatus.OK); }</code><technical_language>form.get("minX") != null && !form.get("minX").equalsIgnoreCase("") is safer</technical_language>

Target:
private ResponseEntity<?> handleDoSeedPost(Map<String, String> form, TileLayer tl) throws RestException, GeoWebCacheException { String gridSetId = form.get("gridSetId"); BoundingBox bounds = null; if (form.get("minX") != null && !form.get("minX").equalsIgnoreCase("")) { bounds = new BoundingBox(parseDouble(form, "minX"), parseDouble(form, "minY"), parseDouble(form, "maxX"), parseDouble(form, "maxY")); } else { GridSubset subset = tl.getGridSubset(gridSetId); bounds = subset.getOriginalExtent(); } int threadCount = Integer.parseInt(form.get("threadCount")); int zoomStart = Integer.parseInt(form.get("zoomStart")); int zoomStop = Integer.parseInt(form.get("zoomStop")); String format = form.get("format"); Map<String, String> fullParameters; { Map<String, String> parameters = new HashMap<String, String>();; Set<String> paramNames = form.keySet(); String prefix = "parameter_"; for (String name : paramNames) { if (name.startsWith(prefix)) { String paramName = name.substring(prefix.length()); String value = form.get(name); parameters.put(paramName, value); } } fullParameters = tl.getModifiableParameters(parameters, "UTF-8"); } GWCTask.TYPE type = GWCTask.TYPE.valueOf(form.get("type").toUpperCase()); final String layerName = tl.getName(); SeedRequest sr = new SeedRequest(layerName, bounds, gridSetId, threadCount, zoomStart, zoomStop, format, type, fullParameters); TileRange tr = TileBreeder.createTileRange(sr, tl); GWCTask[] tasks; try { tasks = seeder.createTasks(tr, tl, sr.getType(), sr.getThreadCount(), sr.getFilterUpdate()); } catch (GeoWebCacheException e) { throw new RestException(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } seeder.dispatchTasks(tasks); try { Thread.sleep(500); } catch (InterruptedException e) { } return new ResponseEntity<Object>(this.makeResponsePage(tl), getHeaders(), HttpStatus.OK); }