[269741] ServerView2: Memory leak
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java
index fab3fe9..75c7645 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerDecorator.java
@@ -11,7 +11,6 @@
  package org.eclipse.wst.server.ui.internal.cnf;
 
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.*;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.ui.ISharedImages;
@@ -133,14 +132,14 @@
 		return syncState[i];
 	}
 
-	public static ImageDescriptor getServerStateImage(IServer server) {
+	public static Image getServerStateImage(IServer server) {
 		return server == null ? null : 
 			getStateImage(server.getServerType(), server.getServerState(), server.getMode());
 	}
-
-	public static ImageDescriptor getStateImage(IServerType serverType, int state, String mode) {
+	
+	public static Image getStateImage(IServerType serverType, int state, String mode) {
 		return serverType == null ? null : 
-			UIDecoratorManager.getCNFUIDecorator(serverType).getStateImageDescriptor(state, mode, getCount());
+			UIDecoratorManager.getCNFUIDecorator(serverType).getStateImage(state, mode, getCount());
 	}
 	
 	public static String getModuleText(ModuleServer ms ) { 
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
index b0a69be..7ea62fd 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
@@ -10,7 +10,8 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.cnf;
 
-import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.graphics.Image;
@@ -18,6 +19,7 @@
 import org.eclipse.wst.server.ui.ServerUICore;
 import org.eclipse.wst.server.ui.internal.ImageResource;
 import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
 import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
 /**
  * Server table label provider.
@@ -50,8 +52,13 @@
 		if( element == ServerContentProvider.INITIALIZING)
 			return Messages.viewInitializing;
 
+		if (element instanceof IWorkspaceRoot){
+			return Platform.getResourceString(ServerUIPlugin.getInstance().getBundle(), "%viewServers");
+		}
+		
 		return "-";
 	}
+		
 	public Image getImage(Object element) {
 		Image image = null;
 		if (element instanceof ModuleServer) {
@@ -62,12 +69,13 @@
 		} else if( element instanceof IServer ) {
 			IServer server = (IServer) element;
 			if (server.getServerType() != null) {
-				image = ImageResource.getImage(server.getServerType().getId());
 				// TODO Angel says: Need to fix this
-				// Because we are now grabbing the ServerState the type will not show. It might be best to create a new icon for the state
-				ImageDescriptor imgDescriptor = ServerDecorator.getServerStateImage(server);
-				if (image != null && imgDescriptor != null){
-					image = imgDescriptor.createImage();
+				// Because we are now grabbing the ServerState the type will not show. 
+				// It might be best to create a new icon for the state, perhaps just the
+				// play/stop images, without the server
+				image = ServerDecorator.getServerStateImage(server);
+				if (image == null){
+					image = ImageResource.getImage(server.getServerType().getId());
 				}
 			}
 		}
@@ -87,5 +95,5 @@
 			}
 		}
 		return true;
-	}
+	}	
 }