Broken thread local cache removed from ModelManager.
diff --git a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/ModelManager.java b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/ModelManager.java
index d648952..2ac4d93 100644
--- a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/ModelManager.java
+++ b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/ModelManager.java
@@ -23,12 +23,8 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.rcptt.core.ContextType;
 import org.eclipse.rcptt.core.model.IContext;
@@ -41,7 +37,6 @@
 import org.eclipse.rcptt.core.model.ITestSuite;
 import org.eclipse.rcptt.core.model.ModelException;
 import org.eclipse.rcptt.core.model.search.ISearchScope;
-import org.eclipse.rcptt.core.nature.RcpttNature;
 import org.eclipse.rcptt.core.scenario.GroupContext;
 import org.eclipse.rcptt.core.scenario.TestSuiteItem;
 import org.eclipse.rcptt.core.workspace.RcpttCore;
@@ -55,7 +50,6 @@
 
 public class ModelManager {
 	private static ModelManager instance;
-	private ThreadLocal<Map<IQ7Element, Object>> temporaryCache = new ThreadLocal<Map<IQ7Element, Object>>();
 	public ModelCache cache;// = new ModelCache();
 
 	public DeltaProcessingState deltaState = new DeltaProcessingState();
@@ -101,31 +95,10 @@
 		workspace.removeResourceChangeListener(this.deltaState);
 	}
 
-	public Map<IQ7Element, Object> getTemporaryCache() {
-		Map<IQ7Element, Object> result = this.temporaryCache.get();
-		if (result == null) {
-			result = new HashMap<IQ7Element, Object>();
-			this.temporaryCache.set(result);
-		}
-		return result;
-	}
-
 	public synchronized Object getInfo(IQ7Element element) {
-		Map<IQ7Element, Object> tempCache = this.temporaryCache.get();
-		if (tempCache != null) {
-			Object result = tempCache.get(element);
-			if (result != null) {
-				return result;
-			}
-		}
 		return this.cache.getInfo(element);
 	}
 
-	public boolean hasTemporaryCache() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
 	protected synchronized void putInfos(IQ7Element openedElement,
 			Map<IQ7Element, Object> newElements) {
 		// remove children
@@ -169,10 +142,6 @@
 		return null;
 	}
 
-	public void resetTemporaryCache() {
-		this.temporaryCache.set(null);
-	}
-
 	public static IQ7Element create(IFile file, IQ7Project project) {
 		if (file == null) {
 			return null;
@@ -225,13 +194,6 @@
 	}
 
 	public Object peekAtInfo(IQ7Element element) {
-		Map<IQ7Element, Object> tempCache = this.temporaryCache.get();
-		if (tempCache != null) {
-			Object result = tempCache.get(element);
-			if (result != null) {
-				return result;
-			}
-		}
 		return this.cache.peekAtInfo(element);
 	}
 
diff --git a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/Q7Element.java b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/Q7Element.java
index e7fa2e6..f17dba4 100644
--- a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/Q7Element.java
+++ b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/Q7Element.java
@@ -11,6 +11,7 @@
 package org.eclipse.rcptt.internal.core.model;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -69,9 +70,8 @@
 	protected synchronized Object openWhenClosed(Object info,
 			IProgressMonitor monitor) throws ModelException {
 		ModelManager manager = ModelManager.getModelManager();
-		boolean hadTemporaryCache = manager.hasTemporaryCache();
 		try {
-			Map<IQ7Element, Object> newElements = manager.getTemporaryCache();
+			Map<IQ7Element, Object> newElements = new HashMap<IQ7Element, Object>();
 			generateInfos(info, newElements, monitor);
 			if (info == null) {
 				info = newElements.get(this);
@@ -79,16 +79,14 @@
 			if (info == null) {
 				throw newNotPresentException();
 			}
-			if (!hadTemporaryCache && !isInWorkingCopyMode()) {
+			if (!isInWorkingCopyMode()) {
 				// Do not put info if in working copy mode
 				manager.putInfos(this, newElements);
 			}
 		} finally {
-			if (!hadTemporaryCache) {
-				manager.resetTemporaryCache();
-			}
 		}
-		return info;
+		Object info2 = manager.getInfo(this);
+		return info2;
 	}
 
 	public void close() throws ModelException {
diff --git a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/ElementCache.java b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/ElementCache.java
index 16d60ae..0e93eaa 100644
--- a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/ElementCache.java
+++ b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/ElementCache.java
@@ -26,8 +26,9 @@
 	}
 
 	@Override
-	protected boolean close(LRUCacheEntry entry) {
-		Openable element = (Openable) entry._fKey;
+	protected boolean close(Object key, Object value) {
+		// System.out.println("ElementCache.close(" + key + ", " + value + ")");
+		Openable element = (Openable) key;
 		try {
 			if (!element.canBeRemovedFromCache()) {
 				return false;
@@ -64,4 +65,10 @@
 		}
 	}
 
+	@Override
+	public Object put(Object key, Object value) {
+		// System.out.println("ElementCache.put(" + key + ", " + value + ")");
+		return super.put(key, value);
+	}
+
 }
diff --git a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/OverflowingLRUCache.java b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/OverflowingLRUCache.java
index 64253e0..b816f00 100644
--- a/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/OverflowingLRUCache.java
+++ b/core/org.eclipse.rcptt.core/src/org/eclipse/rcptt/internal/core/model/cache/OverflowingLRUCache.java
@@ -41,7 +41,7 @@
 		return newCache;
 	}
 
-	protected abstract boolean close(LRUCacheEntry entry);
+	protected abstract boolean close(Object key, Object value);
 
 	@SuppressWarnings("rawtypes")
 	public Enumeration elements() {
@@ -170,7 +170,7 @@
 				fCurrentSpace -= entry._fSpace;
 				privateNotifyDeletionFromCache(entry);
 			} else {
-				if (!close(entry))
+				if (!close(entry._fKey, entry._fValue))
 					return;
 				// buffer close will recursively call #privateRemoveEntry with
 				// external==true
@@ -213,9 +213,11 @@
 
 		if (entry != null) {
 			privateRemoveEntry(entry, false, false);
+//			close(key, value);
+//			return entry._fValue;
 		}
 
-		// attempt to make new space
+		// attempt to make new spaceG
 		makeSpace(newSpace);
 
 		// add without worring about space, it will