Fix NPE in DevMode if the war directory doesn't exist. Patch by: jat Review by: rdayal git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7471 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/DevMode.java b/dev/core/src/com/google/gwt/dev/DevMode.java index 255759f..57b9c32 100644 --- a/dev/core/src/com/google/gwt/dev/DevMode.java +++ b/dev/core/src/com/google/gwt/dev/DevMode.java
@@ -383,6 +383,14 @@ @Override protected int doStartUpServer() { + // Create the war directory if it doesn't exist + File warDir = options.getWarDir(); + if (!warDir.exists() && !warDir.mkdirs()) { + getTopLogger().log(TreeLogger.ERROR, "Unable to create war directory " + + warDir); + return -1; + } + boolean clearCallback = true; try { ui.setCallback(RestartServerEvent.getType(), this); @@ -438,6 +446,10 @@ protected void inferStartupUrls() { // Look for launchable files directly under war File warDir = options.getWarDir(); + if (!warDir.exists()) { + // if the war directory doesn't exist, there are no startup files there + return; + } for (File htmlFile : warDir.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return STARTUP_FILE_PATTERN.matcher(name).matches();
diff --git a/dev/core/src/com/google/gwt/dev/DevModeBase.java b/dev/core/src/com/google/gwt/dev/DevModeBase.java index da8fc37..f186b77 100644 --- a/dev/core/src/com/google/gwt/dev/DevModeBase.java +++ b/dev/core/src/com/google/gwt/dev/DevModeBase.java
@@ -1040,13 +1040,21 @@ getTopLogger().log(TreeLogger.TRACE, "Started web server on port " + resultPort); } - + if (options.getStartupURLs().isEmpty()) { + // if no URLs were supplied, try and find plausible ones inferStartupUrls(); } - setStartupUrls(topLogger); - + if (options.getStartupURLs().isEmpty()) { + // TODO(jat): we could walk public resources to find plausible URLs + // after the module(s) are loaded + getTopLogger().log(TreeLogger.WARN, "No startup URLs supplied or found " + + "-- supply them on the command line"); + } + + setStartupUrls(getTopLogger()); + if (!doSlowStartup()) { return false; }