[349434] Next button disabled when choosing existing server host name from the new server wizard
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java
index ae6d51a..f6b1024 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Timer.java
@@ -36,11 +36,12 @@
 	/**
 	 * Runs the timer if it is stopped or updates the stop time directly
 	 * to effectively restart the timer.
+	 * only one command should be executed at a time. 
 	 */
 	public void runTimer(){
 		timerRunnable.setStopTime(System.currentTimeMillis() + delay);
 
-		if(!timerRunnable.isRunning()){
+		if(!timerRunnable.isRunning() && !timerRunnable.isScheduled()){
 			timerRunnable.setIsScheduled(true);
 			executor.execute(timerRunnable);
 		}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
index 05765ee..339d181 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
@@ -95,7 +95,6 @@
 	protected String serverTypeId;
 	protected boolean includeIncompatible;
 	
-	protected String lastHostname;
 	protected HostnameComposite manualHostComp;
 	IHostnameSelectionListener hostnameListener;
 	protected Label hostnameLabel;
@@ -181,7 +180,6 @@
 		
 		hostnameListener = 	new IHostnameSelectionListener() {
 			public void hostnameSelected(String selectedHostname) {
-				lastHostname = selectedHostname;
 				setHost(selectedHostname);
 			}
 	    };		
@@ -746,8 +744,13 @@
 	protected void hostnameChanged(String newHost) {
 		if (newHost == null)
 			return;
-		if (newHost.equals(host))
-			return;
+		/*
+		 * Bug 349434, with the fix in Timer.runTimer, the chance that a new 
+		 * host name is the same as the host name will be very rare. In some  
+		 * cases, it still needs to go through processes such as loadServerImpl. 
+		 * It doesn't worth to handle it differently. Therefore, we are not checking 
+		 * for the same host name in here.
+		 */
 
 		host = newHost;
 		hostnameListener.hostnameSelected(host);