[101284] Error in Tomcat editor when module can't be found
diff --git a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.java b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.java
index 4a58043..06957d3 100644
--- a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.java
+++ b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.java
@@ -27,6 +27,7 @@
public static String editorAdd;
public static String editorEdit;
public static String editorRemove;
+ public static String errorMissingWebModule;
public static String configurationEditorMimeMappingsSection;
public static String configurationEditorMimeMappingsDescription;
public static String configurationEditorPortsSection;
diff --git a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.properties b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.properties
index 0c5dd61..6fff7fa 100644
--- a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/Messages.properties
@@ -66,6 +66,7 @@
configurationEditorWebModuleDialogDocumentBase=&Document base:
configurationEditorWebModuleDialogReloadEnabled=Auto &reloading enabled
configurationEditorWebModuleDialogSelectDirectory=Select the Web module directory.
+errorMissingWebModule=The Web module at the following location cannot be found: {0}.
# --- Server Editor ---
serverEditorGeneralSection=Server
diff --git a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java
index 538aa01..74970ea 100644
--- a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java
+++ b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java
@@ -12,6 +12,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.io.File;
import java.util.Iterator;
import java.util.List;
@@ -302,6 +303,7 @@
return;
webAppTable.removeAll();
+ setErrorMessage(null);
List list = configuration.getWebModules();
Iterator iterator = list.iterator();
@@ -329,6 +331,11 @@
item.setImage(0, TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_WEB_MODULE));
if (projectImage != null)
item.setImage(2, projectImage);
+
+ if (!isDocumentBaseValid(module.getDocumentBase())) {
+ item.setImage(1, TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_PROJECT_MISSING));
+ setErrorMessage(NLS.bind(Messages.errorMissingWebModule, module.getDocumentBase()));
+ }
}
if (readOnly) {
@@ -360,6 +367,25 @@
}
}
+ protected boolean isDocumentBaseValid(String s) {
+ if (s == null || s.length() < 2)
+ return true;
+
+ File f = new File(s);
+ if (f.exists())
+ return true;
+
+ try {
+ f = server.getRuntime().getLocation().append(s).toFile();
+ if (f.exists())
+ return true;
+ } catch (Exception e) {
+ // bad path
+ }
+
+ return false;
+ }
+
/*
* @see IWorkbenchPart#setFocus()
*/