Bug 371989 - Fail to open e4 workbench Editor
diff --git a/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/IResourceService.java b/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/IResourceService.java
index 93324df..a52c0fb 100644
--- a/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/IResourceService.java
+++ b/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/IResourceService.java
@@ -19,6 +19,7 @@
 public interface IResourceService {
 	public interface IPooledResource<T> {
 		public T getResource();
+		public String getId();
 		public void dispose();
 	}
 	
diff --git a/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/impl/ResourceService.java b/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/impl/ResourceService.java
index 7606412..468cfaf 100644
--- a/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/impl/ResourceService.java
+++ b/bundles/org.eclipse.e4.tools.services/src/org/eclipse/e4/tools/services/impl/ResourceService.java
@@ -49,17 +49,21 @@
 		private Display display;
 		private int count;
 		private T resource;
-		private String imageKey;
+		private String id;
 		private ResourceService resourceService;
 
 		PooledResource(Display display, ResourceService resourceService,
-				String imageKey, T resource) {
+				String id, T resource) {
 			this.display = display;
-			this.imageKey = imageKey;
+			this.id = id;
 			this.count = 1;
 			this.resourceService = resourceService;
 			this.resource = resource;
 		}
+		
+		public String getId() {
+			return id;
+		}
 
 		public T getResource() {
 			return resource;
@@ -73,18 +77,18 @@
 					resource.dispose();
 				}
 				resource = null;
-				imageKey = null;
+				id = null;
 				resourceService = null;
 			}
 		}
 	}
 
 	public static class ResourcePool implements IDiposeableResourcePool {
-		private ResourceService resourceService;
+		private IResourceService resourceService;
 
-		private List<PooledResource<Image>> pooledImages = new ArrayList<PooledResource<Image>>();
-		private List<PooledResource<Font>> pooledFonts = new ArrayList<PooledResource<Font>>();
-		private List<PooledResource<Color>> pooledColors = new ArrayList<PooledResource<Color>>();
+		private List<IPooledResource<Image>> pooledImages = new ArrayList<IPooledResource<Image>>();
+		private List<IPooledResource<Font>> pooledFonts = new ArrayList<IPooledResource<Font>>();
+		private List<IPooledResource<Color>> pooledColors = new ArrayList<IPooledResource<Color>>();
 		private Display display;
 
 		@Inject
@@ -100,10 +104,10 @@
 								"org.eclipse.e4.tools.services",
 								"The pool is disposed"));
 			}
-			PooledResource<Image> image = null;
+			IPooledResource<Image> image = null;
 
-			for (PooledResource<Image> img : pooledImages) {
-				if (img.imageKey.equals(key)) {
+			for (IPooledResource<Image> img : pooledImages) {
+				if (img.getId().equals(key)) {
 					image = img;
 				}
 			}
@@ -123,9 +127,9 @@
 								"The pool is disposed"));
 			}
 			
-			PooledResource<Font> font = null;
-			for (PooledResource<Font> fon : pooledFonts) {
-				if (fon.imageKey.equals(key)) {
+			IPooledResource<Font> font = null;
+			for (IPooledResource<Font> fon : pooledFonts) {
+				if (fon.getId().equals(key)) {
 					font = fon;
 				}
 			}
@@ -143,10 +147,10 @@
 								"org.eclipse.e4.tools.services",
 								"The pool is disposed"));
 			}
-			PooledResource<Color> color = null;
+			IPooledResource<Color> color = null;
 			
-			for (PooledResource<Color> col : pooledColors) {
-				if (col.imageKey.equals(key)) {
+			for (IPooledResource<Color> col : pooledColors) {
+				if (col.getId().equals(key)) {
 					color = col;
 				}
 			}
@@ -244,11 +248,11 @@
 
 	protected void removePooledResource(PooledResource<?> resource) {
 		if (resource.getResource() instanceof Image) {
-			displayPool.get(resource.display).getImagePool().remove(resource.imageKey);
+			displayPool.get(resource.display).getImagePool().remove(resource.getId());
 		} else if (resource.getResource() instanceof Color) {
-			displayPool.get(resource.display).getColorPool().remove(resource.imageKey);
+			displayPool.get(resource.display).getColorPool().remove(resource.getId());
 		} else if (resource.getResource() instanceof Font) {
-			displayPool.get(resource.display).getFontPool().remove(resource.imageKey);
+			displayPool.get(resource.display).getFontPool().remove(resource.getId());
 		}
 	}