sync with head
diff --git a/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF
index 734c71d..1632b68 100644
--- a/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF
@@ -13,5 +13,5 @@
 Require-Bundle: 
  org.eclipse.core.expressions;bundle-version="[3.4.100,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.3.100,4.0.0)",
- org.junit
+ org.junit;bundle-version="3.8.2"
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/ExpressionTests.java b/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/ExpressionTests.java
index ae1342a..ad7c3d4 100644
--- a/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/ExpressionTests.java
+++ b/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/ExpressionTests.java
@@ -1019,6 +1019,8 @@
 
 	public void testSubTypeTiming() throws Exception {
 		HashSet o1= new HashSet();
+		
+		System.gc();
 		long cachedStart= System.currentTimeMillis();
 		for (int i= 0; i < TYPE_ITERATIONS; i++) {
 			assertTrue(Expressions.isInstanceOf(o1, "java.util.Set"));
@@ -1026,13 +1028,15 @@
 		}
 		long cachedDelta= System.currentTimeMillis() - cachedStart;
 
+		System.gc();
 		long instanceStart= System.currentTimeMillis();
 		for (int i= 0; i < TYPE_ITERATIONS; i++) {
 			assertTrue(Expressions.uncachedIsSubtype(o1.getClass(), "java.util.Set"));
 			assertFalse(Expressions.uncachedIsSubtype(o1.getClass(), "java.util.List"));
 		}
 		long instanceDelta= System.currentTimeMillis() - instanceStart;
-		assertTrue(cachedDelta * 2 < instanceDelta);
+		
+		assertTrue("cachedDelta: " + cachedDelta + ", instanceDelta: " + instanceDelta, cachedDelta * 2 < instanceDelta);
 	}
 
 }