update to v_B39
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java
index 299ba6b..f4d365a 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AttachSourceTests.java
@@ -73,8 +73,6 @@
 	private static final int AST_INTERNAL_JLS2 = AST.JLS2;
 
 	private IPackageFragmentRoot pkgFragmentRoot;
-	private IType genericType;
-	private IPackageFragment innerClasses;
 
 public AttachSourceTests(String name) {
 	super(name);
@@ -162,8 +160,6 @@
 		"}"
 	};
 	addLibrary("generic.jar", "genericsrc.zip", pathAndContents, JavaCore.VERSION_1_5);
-	IFile jar = getFile("/AttachSourceTests/generic.jar");
-	this.genericType = this.currentProject.getPackageFragmentRoot(jar).getPackageFragment("generic").getClassFile("X.class").getType();
 }
 private void setUpInnerClassesJar() throws IOException, CoreException {
 	String[] pathAndContents = new String[] {
@@ -199,22 +195,17 @@
 		"}"
 	};
 	addLibrary("innerClasses.jar", "innerClassessrc.zip", pathAndContents, JavaCore.VERSION_1_4);
-	IFile jar = getFile("/AttachSourceTests/innerClasses.jar");
-	this.innerClasses = this.currentProject.getPackageFragmentRoot(jar).getPackageFragment("inner");
 }
 protected void tearDown() throws Exception {
 	IPackageFragmentRoot[] roots = this.currentProject.getAllPackageFragmentRoots();
 	for (int i = 0; i < roots.length; i++) {
 		IPackageFragmentRoot root = roots[i];
-		if (this.genericType != null && root.equals(this.genericType.getPackageFragment().getParent())) continue;
-		if (this.innerClasses != null && root.equals(this.innerClasses.getParent())) continue;
 		if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
 			attachSource(root, null, null); // detach source
 		}
 	}
 	super.tearDown();
 }
-
 /**
  * Reset the jar placeholder and delete project.
  */
@@ -342,13 +333,19 @@
  * (regression test for bug 119249 codeResolve, search, etc. don't work on constructor of binary inner class)
  */
 public void testClassFileGetElementAt04() throws JavaModelException {
-	IClassFile classFile = this.innerClasses.getClassFile("X$V.class");
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IClassFile classFile = fragment.getClassFile("X$V.class");
 	String source = classFile.getSource();
 	IJavaElement element = classFile.getElementAt(source.indexOf("V(String s)"));
 	assertElementExists(
 		"Unexpected element",
 		"V(inner.X, java.lang.String) [in V [in X$V.class [in inner [in innerClasses.jar [in AttachSourceTests]]]]]",
 		element);
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of a .class file is implicetely attached when prj=src=bin
@@ -612,76 +609,116 @@
  * Ensures that the source of a generic method can be retrieved.
  */
 public void testGeneric1() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"QX<QT;>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"QX<QT;>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(X<T> x) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of a generic method can be retrieved.
  */
 public void testGeneric2() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"QK;", "QV;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"QK;", "QV;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"<K, V> V foo(K key, V value) {\n" +
 		"    return value;\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of a generic method can be retrieved.
  * (regression test for bug 129317 Outline view inconsistent with code
  */
 public void testGeneric3() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"I", "Lgeneric.X<[Ljava.lang.Object;>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"I", "Lgeneric.X<[Ljava.lang.Object;>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(int i, X<Object[]> x) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 public void testGeneric4() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"Z", "Lgeneric.X<+Lgeneric.X;>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"Z", "Lgeneric.X<+Lgeneric.X;>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(boolean b, X<? extends X> x) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 public void testGeneric5() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"F", "Lgeneric.X<*>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"F", "Lgeneric.X<*>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(float f, X<?> x) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 public void testGeneric6() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"Lgeneric.Y<+Ljava.lang.Integer;+Ljava.lang.Object;>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"Lgeneric.Y<+Ljava.lang.Integer;+Ljava.lang.Object;>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(Y<? extends Integer, ? extends Object> y) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 public void testGeneric7() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"Lgeneric.Z.Inner<Ljava.lang.Object;>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"Lgeneric.Z.Inner<Ljava.lang.Object;>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(Z.Inner<Object> inner) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 public void testGeneric8() throws JavaModelException {
-	IMethod method = this.genericType.getMethod("foo", new String[] {"Lgeneric.AType<Ljava.lang.Object;>;"});
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/generic.jar"));
+	attachSource(root, "/AttachSourceTests/genericsrc.zip", null);
+	IType type = root.getPackageFragment("generic").getClassFile("X.class").getType();
+	IMethod method = type.getMethod("foo", new String[] {"Lgeneric.AType<Ljava.lang.Object;>;"});
 	assertSourceEquals(
 		"Unexpected source",
 		"void foo(AType<Object> t) {\n" +
 		"  }",
 		method.getSource());
+	attachSource(root, null, null); // detach source
 }
 /**
  * Ensures that name ranges exists for BinaryMembers that have
@@ -705,13 +742,25 @@
  * (regression test for bug 119249 codeResolve, search, etc. don't work on constructor of binary inner class)
  */
 public void testGetNameRange03() throws JavaModelException {
-	IClassFile classFile = this.innerClasses.getClassFile("X$V.class");
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IClassFile classFile = fragment.getClassFile("X$V.class");
 	IMethod constructor = classFile.getType().getMethod("V", new String[] {"Linner.X;", "Ljava.lang.String;"});
 	assertSourceEquals("Unexpected name source", "V", getNameSource(classFile.getSource(), constructor));
+
+	attachSource(root, null, null); // detach source
 }
 //https://bugs.eclipse.org/bugs/show_bug.cgi?id=108784
 public void testGetNameRange04() throws JavaModelException {
-	IClassFile classFile = this.innerClasses.getClassFile("X$Inner.class");
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IClassFile classFile = fragment.getClassFile("X$Inner.class");
 	IMethod[] methods = classFile.getType().getMethods();
 	for (int i = 0; i < methods.length; i++) {
 		IMethod iMethod = methods[i];
@@ -719,6 +768,8 @@
 		assertTrue("Unexpected name range", nameRange.getOffset() != -1);
 		assertTrue("Unexpected name range", nameRange.getLength() != 0);
 	}
+
+	attachSource(root, null, null); // detach source
 }
 /**
  * Retrieves the source attachment paths for jar root.
@@ -754,7 +805,12 @@
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass1() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"public class X {\n" +
@@ -786,54 +842,84 @@
 		"  }\n" + 
 		"}",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass2() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$1.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$1.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"new X() {}",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass3() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$2.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$2.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"new Y() {\n" +
 		"      class Z {}\n" +
 		"    }",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass4() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$3.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$3.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"new W() {}",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass5() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$1$Y.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$1$Y.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"class Y {}",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass6() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$1$W.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$1$W.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"class W {\n" +
@@ -842,22 +928,34 @@
 		"      }\n" +
 		"    }",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass7() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$2$Z.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$2$Z.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"class Z {}",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  */
 public void testInnerClass8() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$V.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$V.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"class V {\n" +
@@ -865,13 +963,19 @@
 		"    }\n" +
 		"  }",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 /*
  * Ensures that the source of an inner class can be retrieved.
  * (regression test for bug 124611 IAE in Signature.createCharArrayTypeSignature)
  */
 public void testInnerClass9() throws JavaModelException {
-	IType type = this.innerClasses.getClassFile("X$4$U.class").getType();
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IType type = fragment.getClassFile("X$4$U.class").getType();
 	assertSourceEquals(
 		"Unexpected source",
 		"class U {\n" +
@@ -879,6 +983,7 @@
 		"        }\n" +
 		"      }",
 		type.getSource());
+	attachSource(root, null, null); // detach source
 }
 
 /**
@@ -1134,7 +1239,6 @@
 		cf.getSource());
 
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * Attach a jar with a source attachment that doesn't contain the source folders
@@ -1159,7 +1263,6 @@
 		cf.getSource());
 
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * Attach a jar with a source attachment that doesn't contain the source folders
@@ -1192,7 +1295,6 @@
 		cf.getSource());
 
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * Attach a jar with a source attachment that contains the source folders
@@ -1225,7 +1327,6 @@
 		cf.getSource());
 
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * Attach a jar with a source attachment that contains the source folders
@@ -1258,7 +1359,6 @@
 		cf.getSource());
 
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * Attach a jar with a source attachment that is itself
@@ -1280,7 +1380,6 @@
 		"}",
 		cf.getSource());
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * http://bugs.eclipse.org/bugs/show_bug.cgi?id=35965
@@ -1309,7 +1408,6 @@
 	assertTrue("Not a binary root", root.getKind() == IPackageFragmentRoot.K_BINARY);
 	assertEquals("wrong jdk level", ClassFileConstants.JDK1_2, Util.getJdkLevel(root.getResource()));
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * Attach a jar with a source attachment that is itself. The jar contains 2 root paths for the same class file.
@@ -1328,7 +1426,6 @@
 		"}\n",
 		cf.getSource());
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=110172"
@@ -1407,7 +1504,6 @@
 		}
 	} finally {
 		attachSource(root, null, null); // detach source
-		root.close();
 	}
 }
 /**
@@ -1433,7 +1529,6 @@
 		"}",
 		cf.getSource());
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * @test bug 153133: [model] toggle breakpoint in constructor creates a class load breakpoint
@@ -1476,7 +1571,6 @@
 		}
 	} finally {
 		removeClasspathEntry(new Path("/JavaSearchBugs/lib/b148215.jar"));
-		root.close();
 	}
 }
 // https://bugs.eclipse.org/bugs/show_bug.cgi?id=267046
@@ -1521,7 +1615,6 @@
 	}
 
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 // https://bugs.eclipse.org/bugs/show_bug.cgi?id=88265
 // Test to ensure availability and correctness of API SourceRange
@@ -1541,11 +1634,17 @@
  * https://bugs.eclipse.org/bugs/show_bug.cgi?id=285230
  */
 public void testClassFileBuffer() throws JavaModelException {
-	IClassFile classFile = this.innerClasses.getClassFile("X$V.class");
+	IJavaProject project = this.getJavaProject("/AttachSourceTests");
+	IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/AttachSourceTests/innerClasses.jar"));
+	attachSource(root, "/AttachSourceTests/innerClassessrc.zip", null);
+	IPackageFragment fragment = root.getPackageFragment("inner");
+
+	IClassFile classFile = fragment.getClassFile("X$V.class");
 	IBuffer buffer = classFile.getBuffer();
-	classFile = this.innerClasses.getClassFile("X.class");
+	classFile = fragment.getClassFile("X.class");
 	IBuffer buffer2 = classFile.getBuffer();
 	assertTrue("Same buffer is not reused", buffer2 == buffer);
+	attachSource(root, null, null); // detach source
 }
 /**
  * https://bugs.eclipse.org/bugs/show_bug.cgi?id=242029
@@ -1567,7 +1666,6 @@
 		"		}",
 		methods[0].getSource());
 	attachSource(root, null, null); // detach source
-	root.close();
 }
 /**
  * https://bugs.eclipse.org/bugs/show_bug.cgi?id=336046
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
index 796ed6d..1a0648c 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompilationUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Stephan Herrmann - contribution for bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment
  *******************************************************************************/
 package org.eclipse.jdt.core.tests.model;
 
@@ -23,6 +24,9 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jdt.core.*;
+import org.eclipse.jdt.core.compiler.IProblem;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTParser;
 import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
 import org.eclipse.jdt.internal.core.Buffer;
 import org.eclipse.jdt.internal.core.CompilationUnit;
@@ -478,6 +482,104 @@
 }
 
 /*
+ * Bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment 
+ * Ensure that package level annotation is evaluated during AST creation.
+ */
+public void testDeprecatedFlag10() throws CoreException {
+	try {
+		createFolder("/P/src/p2");
+	
+		createFile(
+				"/P/src/p2/package-info.java",
+				"@java.lang.Deprecated package p2;\n"
+			);
+		
+		// workaround for missing type in jclMin:
+		createFolder("/P/src/java/lang");
+		createFile(
+				"/P/src/java/lang/Deprecated.java",
+				"package java.lang;\n" +
+				"@Retention(RetentionPolicy.RUNTIME)\n" + 
+				"public @interface Deprecated {\n" + 
+				"}\n"
+			);
+	
+		createFile("/P/src/p2/C.java", 
+				"package p2;\n" +
+				"public class C {}\n");
+	
+		createFile("/P/src/p/D.java", 
+				"package p;\n" +
+				"public class D extends p2.C {}\n");
+		ICompilationUnit cuD = getCompilationUnit("/P/src/p/D.java");
+		
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setProject(this.testProject);
+		parser.setSource(cuD);
+		parser.setResolveBindings(true);
+		org.eclipse.jdt.core.dom.CompilationUnit cuAST = (org.eclipse.jdt.core.dom.CompilationUnit) parser.createAST(null);
+		IProblem[] problems = cuAST.getProblems();
+		assertEquals("Should have 1 problem", 1, problems.length);
+		assertEquals("Should have a deprecation warning", "The type C is deprecated", problems[0].getMessage());
+	} finally {
+		deleteFile("/P/src/p/D.java");
+		deleteFolder("/P/src/p2");
+		deleteFolder("/P/src/java/lang");
+	}
+}
+
+/*
+ * Bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment 
+ * Ensure that package level annotation is evaluated during AST creation. 
+ * a working copy for package-info exists and must be used.
+ */
+public void testDeprecatedFlag11() throws CoreException {
+	try {
+		createFolder("/P/src/p2");
+
+		createFile(
+				"/P/src/p2/package-info.java",
+				"@java.lang.Deprecated package p2;\n"
+			);
+		WorkingCopyOwner myWCOwner = newWorkingCopyOwner(null);
+		getCompilationUnit("/P/src/p2/package-info.java").getWorkingCopy(myWCOwner, null);
+
+
+		// workaround for missing type in jclMin:
+		createFolder("/P/src/java/lang");
+		createFile(
+				"/P/src/java/lang/Deprecated.java",
+				"package java.lang;\n" +
+				"@Retention(RetentionPolicy.RUNTIME)\n" +
+				"public @interface Deprecated {\n" +
+				"}\n"
+			);
+	
+		createFile("/P/src/p2/C.java",
+				"package p2;\n" +
+				"public class C {}\n");
+	
+		createFile("/P/src/p/D.java",
+				"package p;\n" +
+				"public class D extends p2.C {}\n");
+		ICompilationUnit cuD = getCompilationUnit("/P/src/p/D.java");
+
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setWorkingCopyOwner(myWCOwner);
+		parser.setProject(this.testProject);
+		parser.setSource(cuD);
+		parser.setResolveBindings(true);
+		org.eclipse.jdt.core.dom.CompilationUnit cuAST = (org.eclipse.jdt.core.dom.CompilationUnit) parser.createAST(null);
+		IProblem[] problems = cuAST.getProblems();
+		assertEquals("Should have 1 problem", 1, problems.length);
+		assertEquals("Should have a deprecation warning", "The type C is deprecated", problems[0].getMessage());
+	} finally {
+		deleteFile("/P/src/p/D.java");
+		deleteFolder("/P/src/p2");
+		deleteFolder("/P/src/java/lang");
+	}
+}
+/*
  * Ensures that the primary type of a cu can be found.
  */
 public void testFindPrimaryType1() throws JavaModelException {
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests.java
index 6d76b52..2c453ff 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests.java
@@ -15,6 +15,7 @@
 import java.util.Map;
 
 import junit.framework.Test;
+import junit.framework.TestSuite;
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -42,7 +43,948 @@
 //	TESTS_NAMES = new String[] { "testCompletionMethodDeclaration17"};
 }
 public static Test suite() {
-	return buildModelTestSuite(CompletionTests.class);
+	//return buildModelTestSuite(CompletionTests.class);
+	TestSuite suite = new Suite(CompletionTests.class.getName());
+	suite.addTest(new CompletionTests("testAbortCompletion1"));
+	suite.addTest(new CompletionTests("testAbortCompletion2"));
+	suite.addTest(new CompletionTests("testArrayInitializer1"));
+	suite.addTest(new CompletionTests("testBug132679"));
+	suite.addTest(new CompletionTests("testBug164311"));
+	suite.addTest(new CompletionTests("testBug164311_2"));
+	suite.addTest(new CompletionTests("testBug96213"));
+	suite.addTest(new CompletionTests("testBug99811"));
+	suite.addTest(new CompletionTests("testBug169682a"));
+	suite.addTest(new CompletionTests("testBug169682b"));
+	suite.addTest(new CompletionTests("testBug275518a"));
+	suite.addTest(new CompletionTests("testBug275518b"));
+	suite.addTest(new CompletionTests("testBug275518c"));
+	suite.addTest(new CompletionTests("testCamelCaseField1"));
+	suite.addTest(new CompletionTests("testCamelCaseLocalVariable1"));
+	suite.addTest(new CompletionTests("testCamelCaseMethod1"));
+	suite.addTest(new CompletionTests("testCamelCaseMethodDeclaration1"));
+	suite.addTest(new CompletionTests("testCamelCaseType1"));
+	suite.addTest(new CompletionTests("testCamelCaseType2"));
+	suite.addTest(new CompletionTests("testCamelCaseType3"));
+	suite.addTest(new CompletionTests("testCamelCaseType4"));
+	suite.addTest(new CompletionTests("testCamelCaseType5"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef01"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef02"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef03"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef04"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef05"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef06"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef07"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef08"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef09"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef10"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef11"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef12"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef13"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef13b"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef14"));
+	suite.addTest(new CompletionTests("testCatchClauseExceptionRef15"));
+	suite.addTest(new CompletionTests("testCompletion2InterfacesWithSameMethod"));
+	suite.addTest(new CompletionTests("testCompletionAbstractMethod1"));
+	suite.addTest(new CompletionTests("testCompletionAbstractMethod2"));
+	suite.addTest(new CompletionTests("testCompletionAbstractMethod3"));
+	suite.addTest(new CompletionTests("testCompletionAbstractMethod4"));
+	suite.addTest(new CompletionTests("testCompletionAbstractMethodRelevance1"));
+	suite.addTest(new CompletionTests("testCompletionAbstractMethodRelevance2"));
+	suite.addTest(new CompletionTests("testCompletionAfterIf1"));
+	suite.addTest(new CompletionTests("testCompletionAfterIf2"));
+	suite.addTest(new CompletionTests("testCompletionAfterCase1"));
+	suite.addTest(new CompletionTests("testCompletionAfterCase2"));
+	suite.addTest(new CompletionTests("testCompletionAfterCase3"));
+	suite.addTest(new CompletionTests("testCompletionAfterCase4"));
+	suite.addTest(new CompletionTests("testCompletionAfterEqualEqual1"));
+	suite.addTest(new CompletionTests("testCompletionAfterEqualEqual2"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof01"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof02_01"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof02_02"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof02_03"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof02_04"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof03_01"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof03_02"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof03_03"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof03_04"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof03_05"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof03_06"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof04"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof05"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof06_01"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof06_02"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof07"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof08"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof09"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof10"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof11"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof12"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof13"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof14"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof15"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof16"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof17"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof18_01"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof18_02"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof18_03"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof19"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof20"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof21"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof22_01"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof22_02"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof22_03"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof22_04"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof23"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof24_1"));
+	suite.addTest(new CompletionTests("testCompletionAfterInstanceof24_2"));
+	suite.addTest(new CompletionTests("testCompletionAfterSupercall1"));
+	suite.addTest(new CompletionTests("testCompletionAfterSwitch"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes2"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes3"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes4"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes5"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes6"));
+	suite.addTest(new CompletionTests("testCompletionAllMemberTypes7"));
+	suite.addTest(new CompletionTests("testCompletionAllocationExpressionIsParent1"));
+	suite.addTest(new CompletionTests("testCompletionAllocationExpressionIsParent2"));
+	suite.addTest(new CompletionTests("testCompletionAllocationExpressionIsParent3"));
+	suite.addTest(new CompletionTests("testCompletionAllocationExpressionIsParent4"));
+	suite.addTest(new CompletionTests("testCompletionAllocationExpressionIsParent5"));
+	suite.addTest(new CompletionTests("testCompletionAllocationExpressionIsParent6"));
+	suite.addTest(new CompletionTests("testCompletionAmbiguousFieldName"));
+	suite.addTest(new CompletionTests("testCompletionAmbiguousFieldName2"));
+	suite.addTest(new CompletionTests("testCompletionAmbiguousFieldName3"));
+	suite.addTest(new CompletionTests("testCompletionAmbiguousFieldName4"));
+	suite.addTest(new CompletionTests("testCompletionAmbiguousType"));
+	suite.addTest(new CompletionTests("testCompletionAmbiguousType2"));
+	suite.addTest(new CompletionTests("testCompletionArgumentName"));
+	suite.addTest(new CompletionTests("testCompletionArrayAccess1"));
+	suite.addTest(new CompletionTests("testCompletionArrayClone"));
+	suite.addTest(new CompletionTests("testCompletionArrayLength"));
+	suite.addTest(new CompletionTests("testCompletionArraysCloneMethod"));
+	suite.addTest(new CompletionTests("testCompletionAssignmentInMethod1"));
+	suite.addTest(new CompletionTests("testCompletionAssignmentInMethod2"));
+	suite.addTest(new CompletionTests("testCompletionAssignmentInMethod3"));
+	suite.addTest(new CompletionTests("testCompletionAssignmentInMethod4"));
+	suite.addTest(new CompletionTests("testCompletionBasicAnonymousDeclaration1"));
+	suite.addTest(new CompletionTests("testCompletionBasicCompletionContext"));
+	suite.addTest(new CompletionTests("testCompletionBasicField1"));
+	suite.addTest(new CompletionTests("testCompletionBasicKeyword1"));
+	suite.addTest(new CompletionTests("testCompletionBasicLocalVariable1"));
+	suite.addTest(new CompletionTests("testCompletionBasicMethod1"));
+	suite.addTest(new CompletionTests("testCompletionBasicMethodDeclaration1"));
+	suite.addTest(new CompletionTests("testCompletionBasicPackage1"));
+	suite.addTest(new CompletionTests("testCompletionBasicPotentialMethodDeclaration1"));
+	suite.addTest(new CompletionTests("testCompletionBasicType1"));
+	suite.addTest(new CompletionTests("testCompletionBasicType2"));
+	suite.addTest(new CompletionTests("testCompletionBasicType3"));
+	suite.addTest(new CompletionTests("testCompletionBasicVariableDeclaration1"));
+	suite.addTest(new CompletionTests("testCompletionBinaryOperator1"));
+	suite.addTest(new CompletionTests("testCompletionBinaryOperator2"));
+	suite.addTest(new CompletionTests("testCompletionBinaryOperator3"));
+	suite.addTest(new CompletionTests("testCompletionCaseInsensitive"));
+	suite.addTest(new CompletionTests("testCompletionCaseInsensitivePackage"));
+	suite.addTest(new CompletionTests("testCompletionCastIsParent1"));
+	suite.addTest(new CompletionTests("testCompletionCastIsParent2"));
+	suite.addTest(new CompletionTests("testCompletionCatchArgumentName"));
+	suite.addTest(new CompletionTests("testCompletionCatchArgumentName2"));
+	suite.addTest(new CompletionTests("testCompletionClassLiteralAfterAnonymousType1"));
+	suite.addTest(new CompletionTests("testCompletionConditionalExpression1"));
+	suite.addTest(new CompletionTests("testCompletionConditionalExpression2"));
+	suite.addTest(new CompletionTests("testCompletionConditionalExpression3"));
+	suite.addTest(new CompletionTests("testCompletionConstructorForAnonymousType"));
+	suite.addTest(new CompletionTests("testCompletionEmptyToken1"));
+	suite.addTest(new CompletionTests("testCompletionEmptyToken2"));
+	suite.addTest(new CompletionTests("testCompletionEmptyTypeName1"));
+	suite.addTest(new CompletionTests("testCompletionEmptyTypeName2"));
+	suite.addTest(new CompletionTests("testCompletionEmptyTypeName3"));
+	suite.addTest(new CompletionTests("testCompletionEmptyTypeName4"));
+	suite.addTest(new CompletionTests("testCompletionEndOfCompilationUnit"));
+	suite.addTest(new CompletionTests("testCompletionExactNameCaseInsensitive"));
+	suite.addTest(new CompletionTests("testCompletionExpectedTypeIsNotValid"));
+	suite.addTest(new CompletionTests("testCompletionExpectedTypeOnEmptyToken1"));
+	suite.addTest(new CompletionTests("testCompletionExpectedTypeOnEmptyToken3"));
+	suite.addTest(new CompletionTests("testCompletionExpectedTypeOnEmptyToken4"));
+	suite.addTest(new CompletionTests("testCompletionFieldInitializer1"));
+	suite.addTest(new CompletionTests("testCompletionFieldInitializer2"));
+	suite.addTest(new CompletionTests("testCompletionFieldInitializer3"));
+	suite.addTest(new CompletionTests("testCompletionFieldInitializer4"));
+	suite.addTest(new CompletionTests("testCompletionFieldName"));
+	suite.addTest(new CompletionTests("testCompletionFieldName2"));
+	suite.addTest(new CompletionTests("testCompletionFieldName3"));
+	suite.addTest(new CompletionTests("testCompletionFieldName4"));
+	suite.addTest(new CompletionTests("testCompletionFieldName5"));
+	suite.addTest(new CompletionTests("testCompletionFieldName6"));
+	suite.addTest(new CompletionTests("testCompletionFieldName7"));
+	suite.addTest(new CompletionTests("testCompletionFindClass"));
+	suite.addTest(new CompletionTests("testCompletionFindClass2"));
+	suite.addTest(new CompletionTests("testCompletionFindClassDefaultPackage"));
+	suite.addTest(new CompletionTests("testCompletionFindConstructor"));
+	suite.addTest(new CompletionTests("testCompletionFindConstructor2"));
+	suite.addTest(new CompletionTests("testCompletionFindConstructor3"));
+	suite.addTest(new CompletionTests("testCompletionFindConstructor4"));
+	suite.addTest(new CompletionTests("testCompletionFindConstructor5"));
+	suite.addTest(new CompletionTests("testCompletionFindExceptions1"));
+	suite.addTest(new CompletionTests("testCompletionFindExceptions2"));
+	suite.addTest(new CompletionTests("testCompletionFindField1"));
+	suite.addTest(new CompletionTests("testCompletionFindField2"));
+	suite.addTest(new CompletionTests("testCompletionFindField3"));
+	suite.addTest(new CompletionTests("testCompletionFindImport1"));
+	suite.addTest(new CompletionTests("testCompletionFindImport2"));
+	suite.addTest(new CompletionTests("testCompletionFindLocalVariable"));
+	suite.addTest(new CompletionTests("testCompletionFindMemberType1"));
+	suite.addTest(new CompletionTests("testCompletionFindMemberType2"));
+	suite.addTest(new CompletionTests("testCompletionFindMethod1"));
+	suite.addTest(new CompletionTests("testCompletionFindMethod2"));
+	suite.addTest(new CompletionTests("testCompletionFindMethodInThis"));
+	suite.addTest(new CompletionTests("testCompletionFindMethodWhenInProcess"));
+	suite.addTest(new CompletionTests("testCompletionFindSecondaryType1"));
+	suite.addTest(new CompletionTests("testCompletionFindSuperInterface"));
+	suite.addTest(new CompletionTests("testCompletionFindThisDotField"));
+	suite.addTest(new CompletionTests("testCompletionImportedType1"));
+	suite.addTest(new CompletionTests("testCompletionImportedType2"));
+	suite.addTest(new CompletionTests("testCompletionImportedType3"));
+	suite.addTest(new CompletionTests("testCompletionImportedType4"));
+	suite.addTest(new CompletionTests("testCompletionImportedType5"));
+	suite.addTest(new CompletionTests("testCompletionImportedType6"));
+	suite.addTest(new CompletionTests("testCompletionImportedType7"));
+	suite.addTest(new CompletionTests("testCompletionImportedType8"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends1"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends10"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends11"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends12"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends13"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends14"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends2"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends3"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends4"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends5"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends6"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends7"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends8"));
+	suite.addTest(new CompletionTests("testCompletionInsideExtends9"));
+	suite.addTest(new CompletionTests("testCompletionInsideGenericClass"));
+	suite.addTest(new CompletionTests("testCompletionInsideStaticMethod"));
+	suite.addTest(new CompletionTests("testCompletionInstanceofOperator1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract16"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAbstract9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAssert1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAssert2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAssert3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAssert4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAssert5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordAssert6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordBreak1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordBreak2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordBreak3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordBreak4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordBreak5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordBreak6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCase9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordCatch9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass16"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass17"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass18"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass19"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass20"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass21"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass22"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass23"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass24"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordClass9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordContinue1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordContinue2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordContinue3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordContinue4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordContinue5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDefault9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDo1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDo2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDo3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDo4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDo5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordDo6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordElse8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordExtends9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFalse1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFalse2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFalse3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFalse4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFalse5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal16"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal17"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal18"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinal9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFinally9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFor1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFor2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFor3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFor4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFor5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordFor6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordIf1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordIf2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordIf3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordIf4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordIf5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordIf6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImplements1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImplements2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImplements3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImplements4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImplements5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImplements6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordImport8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInstanceof1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInstanceof2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInstanceof3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInstanceof4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInstanceof5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInstanceof6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface16"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface17"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface18"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordInterface9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNative8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew16"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNew9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNull1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNull2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNull3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordNull4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPackage8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPrivate9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordProtected9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic16"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic17"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic18"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic19"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic20"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordPublic9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordReturn7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStatic9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordStrictfp8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSuper9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSwitch1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSwitch2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSwitch3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSwitch4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSwitch5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSwitch6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordSynchronized9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis11"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis12"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis13"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis14"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis15"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThis9"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrow1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrow2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrow3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrow4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrow5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrow6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordThrows8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTransient8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTrue1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTrue2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTrue3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTrue4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTrue5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTrue6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTry1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTry2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTry3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTry4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTry5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordTry6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordVolatile8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile1"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile10"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile2"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile3"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile4"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile5"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile6"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile7"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile8"));
+	suite.addTest(new CompletionTests("testCompletionKeywordWhile9"));
+	suite.addTest(new CompletionTests("testCompletionLocalName"));
+	suite.addTest(new CompletionTests("testCompletionLocalType1"));
+	suite.addTest(new CompletionTests("testCompletionMemberType"));
+	suite.addTest(new CompletionTests("testCompletionMemberType2"));
+	suite.addTest(new CompletionTests("testCompletionMemberType3"));
+	suite.addTest(new CompletionTests("testCompletionMessageSendIsParent1"));
+	suite.addTest(new CompletionTests("testCompletionMessageSendIsParent2"));
+	suite.addTest(new CompletionTests("testCompletionMessageSendIsParent3"));
+	suite.addTest(new CompletionTests("testCompletionMessageSendIsParent4"));
+	suite.addTest(new CompletionTests("testCompletionMessageSendIsParent5"));
+	suite.addTest(new CompletionTests("testCompletionMessageSendIsParent6"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration10"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration11"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration12"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration13"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration14"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration15"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration16"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration17"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration2"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration3"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration4"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration5"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration6"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration7"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration8"));
+	suite.addTest(new CompletionTests("testCompletionMethodDeclaration9"));
+	suite.addTest(new CompletionTests("testCompletionMethodThrowsClause"));
+	suite.addTest(new CompletionTests("testCompletionMethodThrowsClause2"));
+	suite.addTest(new CompletionTests("testCompletionNonEmptyToken1"));
+	suite.addTest(new CompletionTests("testCompletionNonStaticFieldRelevance"));
+	suite.addTest(new CompletionTests("testCompletionNullRequestor"));
+	suite.addTest(new CompletionTests("testCompletionObjectsMethodWithInterfaceReceiver"));
+	suite.addTest(new CompletionTests("testCompletionOnClassFile"));
+	suite.addTest(new CompletionTests("testCompletionOnStaticMember1"));
+	suite.addTest(new CompletionTests("testCompletionOnStaticMember2"));
+	suite.addTest(new CompletionTests("testCompletionOutOfBounds"));
+	suite.addTest(new CompletionTests("testCompletionPackageAndClass1"));
+	suite.addTest(new CompletionTests("testCompletionPackageAndClass2"));
+	suite.addTest(new CompletionTests("testCompletionPrefixFieldName1"));
+	suite.addTest(new CompletionTests("testCompletionPrefixFieldName2"));
+	suite.addTest(new CompletionTests("testCompletionPrefixMethodName1"));
+	suite.addTest(new CompletionTests("testCompletionPrefixMethodName2"));
+	suite.addTest(new CompletionTests("testCompletionPrefixMethodName3"));
+	suite.addTest(new CompletionTests("testCompletionQualifiedAllocationType1"));
+	suite.addTest(new CompletionTests("testCompletionQualifiedExpectedType"));
+	suite.addTest(new CompletionTests("testCompletionRepeatedType"));
+	suite.addTest(new CompletionTests("testCompletionReturnInInitializer"));
+	suite.addTest(new CompletionTests("testCompletionReturnStatementIsParent1"));
+	suite.addTest(new CompletionTests("testCompletionReturnStatementIsParent2"));
+	suite.addTest(new CompletionTests("testCompletionSameClass"));
+	suite.addTest(new CompletionTests("testCompletionSameSuperClass"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethod1"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethodDeclaration1"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethodDeclaration2"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethodDeclaration3"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethodDeclaration4"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethodDeclaration5"));
+	suite.addTest(new CompletionTests("testCompletionStaticMethodDeclaration6"));
+	suite.addTest(new CompletionTests("testCompletionSuperType"));
+	suite.addTest(new CompletionTests("testCompletionSuperType2"));
+	suite.addTest(new CompletionTests("testCompletionSuperType3"));
+	suite.addTest(new CompletionTests("testCompletionSuperType4"));
+	suite.addTest(new CompletionTests("testCompletionSuperType5"));
+	suite.addTest(new CompletionTests("testCompletionSuperType6"));
+	suite.addTest(new CompletionTests("testCompletionSuperType7"));
+	suite.addTest(new CompletionTests("testCompletionSuperType8"));
+	suite.addTest(new CompletionTests("testCompletionThrowStatement"));
+	suite.addTest(new CompletionTests("testCompletionToplevelType1"));
+	suite.addTest(new CompletionTests("testCompletionType1"));
+	suite.addTest(new CompletionTests("testCompletionUnaryOperator1"));
+	suite.addTest(new CompletionTests("testCompletionUnaryOperator2"));
+	suite.addTest(new CompletionTests("testCompletionUnresolvedEnclosingType"));
+	suite.addTest(new CompletionTests("testCompletionUnresolvedFieldType"));
+	suite.addTest(new CompletionTests("testCompletionUnresolvedParameterType"));
+	suite.addTest(new CompletionTests("testCompletionUnresolvedReturnType"));
+	suite.addTest(new CompletionTests("testCompletionUnresolvedSuperclass"));
+	suite.addTest(new CompletionTests("testCompletionUnresolvedSuperinteface"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInInitializer1"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInInitializer2"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInInitializer3"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInInitializer4"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInMethod1"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInMethod2"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInMethod3"));
+	suite.addTest(new CompletionTests("testCompletionVariableInitializerInMethod4"));
+	suite.addTest(new CompletionTests("testCompletionVariableName1"));
+	suite.addTest(new CompletionTests("testCompletionVariableName10"));
+	suite.addTest(new CompletionTests("testCompletionVariableName11"));
+	suite.addTest(new CompletionTests("testCompletionVariableName12"));
+	suite.addTest(new CompletionTests("testCompletionVariableName13"));
+	suite.addTest(new CompletionTests("testCompletionVariableName14"));
+	suite.addTest(new CompletionTests("testCompletionVariableName14_2"));
+	suite.addTest(new CompletionTests("testCompletionVariableName15"));
+	suite.addTest(new CompletionTests("testCompletionVariableName16"));
+	suite.addTest(new CompletionTests("testCompletionVariableName17"));
+	suite.addTest(new CompletionTests("testCompletionVariableName18"));
+	suite.addTest(new CompletionTests("testCompletionVariableName19"));
+	suite.addTest(new CompletionTests("testCompletionVariableName2"));
+	suite.addTest(new CompletionTests("testCompletionVariableName20"));
+	suite.addTest(new CompletionTests("testCompletionVariableName21"));
+	suite.addTest(new CompletionTests("testCompletionVariableName22"));
+	suite.addTest(new CompletionTests("testCompletionVariableName23"));
+	suite.addTest(new CompletionTests("testCompletionVariableName24"));
+	suite.addTest(new CompletionTests("testCompletionVariableName25"));
+	suite.addTest(new CompletionTests("testCompletionVariableName26"));
+	suite.addTest(new CompletionTests("testCompletionVariableName27"));
+	suite.addTest(new CompletionTests("testCompletionVariableName28"));
+	suite.addTest(new CompletionTests("testCompletionVariableName29"));
+	suite.addTest(new CompletionTests("testCompletionVariableName3"));
+	suite.addTest(new CompletionTests("testCompletionVariableName30"));
+	suite.addTest(new CompletionTests("testCompletionVariableName31"));
+	suite.addTest(new CompletionTests("testCompletionVariableName32"));
+	suite.addTest(new CompletionTests("testCompletionVariableName33"));
+	suite.addTest(new CompletionTests("testCompletionVariableName34"));
+	suite.addTest(new CompletionTests("testCompletionVariableName35"));
+	suite.addTest(new CompletionTests("testCompletionVariableName36"));
+	suite.addTest(new CompletionTests("testCompletionVariableName37"));
+	suite.addTest(new CompletionTests("testCompletionVariableName38"));
+	suite.addTest(new CompletionTests("testCompletionVariableName39"));
+	suite.addTest(new CompletionTests("testCompletionVariableName4"));
+	suite.addTest(new CompletionTests("testCompletionVariableName5"));
+	suite.addTest(new CompletionTests("testCompletionVariableName5_2"));
+	suite.addTest(new CompletionTests("testCompletionVariableName6"));
+	suite.addTest(new CompletionTests("testCompletionVariableName6_2"));
+	suite.addTest(new CompletionTests("testCompletionVariableName7"));
+	suite.addTest(new CompletionTests("testCompletionVariableName8"));
+	suite.addTest(new CompletionTests("testCompletionVariableName9"));
+	suite.addTest(new CompletionTests("testCompletionVariableName9_2"));
+	suite.addTest(new CompletionTests("testCompletionVariableNameOfArray1"));
+	suite.addTest(new CompletionTests("testCompletionVariableNameOfArray2"));
+	suite.addTest(new CompletionTests("testCompletionVariableNameOfArray3"));
+	suite.addTest(new CompletionTests("testCompletionVariableNameOfArray4"));
+	suite.addTest(new CompletionTests("testCompletionVariableNameUnresolvedType"));
+	suite.addTest(new CompletionTests("testCompletionVisibilityCheckDisabled"));
+	suite.addTest(new CompletionTests("testCompletionVisibilityCheckEnabled"));
+	suite.addTest(new CompletionTests("testCompletionVoidMethod"));
+	suite.addTest(new CompletionTests("testCompletionWithBinaryFolder"));
+	suite.addTest(new CompletionTests("testCompletionWithProblem1"));
+	suite.addTest(new CompletionTests("testConstructor1"));
+	suite.addTest(new CompletionTests("testConstructor2"));
+	suite.addTest(new CompletionTests("testConstructor3"));
+	suite.addTest(new CompletionTests("testConstructor4"));
+	suite.addTest(new CompletionTests("testConstructor5"));
+	suite.addTest(new CompletionTests("testConstructor6"));
+	suite.addTest(new CompletionTests("testConstructor7"));
+	suite.addTest(new CompletionTests("testDeprecationCheck1"));
+	suite.addTest(new CompletionTests("testDeprecationCheck10"));
+	suite.addTest(new CompletionTests("testDeprecationCheck11"));
+	suite.addTest(new CompletionTests("testDeprecationCheck12"));
+	suite.addTest(new CompletionTests("testDeprecationCheck13"));
+	suite.addTest(new CompletionTests("testDeprecationCheck14"));
+	suite.addTest(new CompletionTests("testDeprecationCheck15"));
+	suite.addTest(new CompletionTests("testDeprecationCheck16"));
+	suite.addTest(new CompletionTests("testDeprecationCheck17"));
+	suite.addTest(new CompletionTests("testDeprecationCheck2"));
+	suite.addTest(new CompletionTests("testDeprecationCheck3"));
+	suite.addTest(new CompletionTests("testDeprecationCheck4"));
+	suite.addTest(new CompletionTests("testDeprecationCheck5"));
+	suite.addTest(new CompletionTests("testDeprecationCheck6"));
+	suite.addTest(new CompletionTests("testDeprecationCheck7"));
+	suite.addTest(new CompletionTests("testDeprecationCheck8"));
+	suite.addTest(new CompletionTests("testDeprecationCheck9"));
+	suite.addTest(new CompletionTests("testDuplicateLocals1"));
+	suite.addTest(new CompletionTests("testDuplicateLocals2"));
+	suite.addTest(new CompletionTests("testDuplicateLocals3"));
+	suite.addTest(new CompletionTests("testDuplicateLocals4"));
+	suite.addTest(new CompletionTests("testDuplicateLocals5"));
+	suite.addTest(new CompletionTests("testDuplicateLocalsType1"));
+	suite.addTest(new CompletionTests("testDuplicateLocalsType2"));
+	suite.addTest(new CompletionTests("testEvaluationContextCompletion"));
+	suite.addTest(new CompletionTests("testEvaluationContextCompletion2"));
+	suite.addTest(new CompletionTests("testEvaluationContextCompletion3"));
+	suite.addTest(new CompletionTests("testEvaluationContextCompletion4"));
+	suite.addTest(new CompletionTests("testEvaluationContextCompletion5"));
+	suite.addTest(new CompletionTests("testEvaluationContextCompletion6"));
+	suite.addTest(new CompletionTests("testFavoriteImports001"));
+	suite.addTest(new CompletionTests("testFavoriteImports002"));
+	suite.addTest(new CompletionTests("testFavoriteImports003"));
+	suite.addTest(new CompletionTests("testFavoriteImports004"));
+	suite.addTest(new CompletionTests("testFavoriteImports005"));
+	suite.addTest(new CompletionTests("testFavoriteImports006"));
+	suite.addTest(new CompletionTests("testFavoriteImports007"));
+	suite.addTest(new CompletionTests("testFavoriteImports009"));
+	suite.addTest(new CompletionTests("testFavoriteImports011"));
+	suite.addTest(new CompletionTests("testFavoriteImports013"));
+	suite.addTest(new CompletionTests("testFavoriteImports016"));
+	suite.addTest(new CompletionTests("testFavoriteImports017"));
+	suite.addTest(new CompletionTests("testFavoriteImports018"));
+	suite.addTest(new CompletionTests("testFavoriteImports019"));
+	suite.addTest(new CompletionTests("testFavoriteImports020"));
+	suite.addTest(new CompletionTests("testFavoriteImports022"));
+	suite.addTest(new CompletionTests("testFavoriteImports023"));
+	suite.addTest(new CompletionTests("testFavoriteImports024"));
+	suite.addTest(new CompletionTests("testFavoriteImports025"));
+	suite.addTest(new CompletionTests("testFavoriteImports026"));
+	suite.addTest(new CompletionTests("testFavoriteImports027"));
+	suite.addTest(new CompletionTests("testFavoriteImports028"));
+	suite.addTest(new CompletionTests("testFavoriteImports030"));
+	suite.addTest(new CompletionTests("testFavoriteImports031"));
+	suite.addTest(new CompletionTests("testFavoriteImports032"));
+	suite.addTest(new CompletionTests("testFavoriteImports033"));
+	suite.addTest(new CompletionTests("testInconsistentHierarchy1"));
+	suite.addTest(new CompletionTests("testLabel1"));
+	suite.addTest(new CompletionTests("testLabel2"));
+	suite.addTest(new CompletionTests("testLabel3"));
+	suite.addTest(new CompletionTests("testLabel4"));
+	suite.addTest(new CompletionTests("testLabel5"));
+	suite.addTest(new CompletionTests("testLabel6"));
+	suite.addTest(new CompletionTests("testMethod1"));
+	suite.addTest(new CompletionTests("testMethod2"));
+	suite.addTest(new CompletionTests("testMethod3"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences001"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences002"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences003"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences004"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences005"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences006"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences007"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences008"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences009"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences010"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences011"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences012"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences013"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences014"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences015"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences016"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences017"));
+	suite.addTest(new CompletionTests("testNameWithUnresolvedReferences018"));
+	suite.addTest(new CompletionTests("testParameterNames1"));
+	suite.addTest(new CompletionTests("testStaticMembers1"));
+	suite.addTest(new CompletionTests("testType1"));
+	suite.addTest(new CompletionTests("testType2"));
+	suite.addTest(new CompletionTests("testType3"));
+	suite.addTest(new CompletionTests("testType4"));
+	suite.addTest(new CompletionTests("testType5"));
+	suite.addTest(new CompletionTests("testType6"));
+	suite.addTest(new CompletionTests("testType7"));
+	suite.addTest(new CompletionTests("testType8"));
+	suite.addTest(new CompletionTests("testType9"));
+	suite.addTest(new CompletionTests("testType10"));
+	suite.addTest(new CompletionTests("testType11"));
+	suite.addTest(new CompletionTests("testType12"));
+	suite.addTest(new CompletionTests("testType13"));
+	suite.addTest(new CompletionTests("testType14"));
+	suite.addTest(new CompletionTests("testInvalidField1"));
+	suite.addTest(new CompletionTests("testInvalidField2"));
+	suite.addTest(new CompletionTests("testInvalidMethod1"));
+	suite.addTest(new CompletionTests("testInvalidMethod2"));
+	suite.addTest(new CompletionTests("testCompletionOnExtendFinalClass"));
+	suite.addTest(new CompletionTests("testCompletionOnExtendFinalClass2"));
+	suite.addTest(new CompletionTests("testCompletionOnExtendFinalClass3"));
+	suite.addTest(new CompletionTests("test203060a"));
+	suite.addTest(new CompletionTests("test203060b"));
+	suite.addTest(new CompletionTests("test203060c"));
+	suite.addTest(new CompletionTests("test203060d"));
+	suite.addTest(new CompletionTests("test269493"));
+	suite.addTest(new CompletionTests("test269493b"));
+	suite.addTest(new CompletionTests("test269493c"));
+	suite.addTest(new CompletionTests("test269493d"));
+	suite.addTest(new CompletionTests("test269493e"));
+	suite.addTest(new CompletionTests("test269493f"));
+	suite.addTest(new CompletionTests("test269493g"));
+	suite.addTest(new CompletionTests("test269493h"));
+	suite.addTest(new CompletionTests("test269493i"));
+	suite.addTest(new CompletionTests("test253008"));
+	suite.addTest(new CompletionTests("test253008b"));
+	suite.addTest(new CompletionTests("test253008c"));
+	suite.addTest(new CompletionTests("test253008d"));
+	suite.addTest(new CompletionTests("test253008e"));
+	suite.addTest(new CompletionTests("test253008f"));
+	suite.addTest(new CompletionTests("test201762"));
+	suite.addTest(new CompletionTests("test270437a"));
+	suite.addTest(new CompletionTests("test270437b"));
+	suite.addTest(new CompletionTests("test270437c"));
+	suite.addTest(new CompletionTests("test270436a"));
+	suite.addTest(new CompletionTests("test270436b"));
+	suite.addTest(new CompletionTests("test270436c"));
+	suite.addTest(new CompletionTests("test276526a"));
+	suite.addTest(new CompletionTests("test276526b"));
+	suite.addTest(new CompletionTests("test276526c"));
+	suite.addTest(new CompletionTests("test276526d"));
+	suite.addTest(new CompletionTests("testBug287939a"));
+	suite.addTest(new CompletionTests("testBug287939b"));
+	suite.addTest(new CompletionTests("testBug287939c"));
+	suite.addTest(new CompletionTests("testBug287939d"));
+	suite.addTest(new CompletionTests("testBug202634a"));
+	suite.addTest(new CompletionTests("testBug202634b"));
+	suite.addTest(new CompletionTests("testBug202634c"));
+	suite.addTest(new CompletionTests("testBug202634d"));
+	suite.addTest(new CompletionTests("testBug202634e"));
+	suite.addTest(new CompletionTests("testBug202634f"));
+	suite.addTest(new CompletionTests("testBug307337"));
+	suite.addTest(new CompletionTests("testBug292087"));
+	suite.addTest(new CompletionTests("testBug249704"));
+	suite.addTest(new CompletionTests("testBug244820"));
+	suite.addTest(new CompletionTests("testBug308980a"));
+	suite.addTest(new CompletionTests("testBug308980b"));
+	suite.addTest(new CompletionTests("testBug267091a"));
+	suite.addTest(new CompletionTests("testBug267091b"));
+	suite.addTest(new CompletionTests("testBug310747"));
+	suite.addTest(new CompletionTests("testBug261534a"));
+	suite.addTest(new CompletionTests("testBug261534b"));
+	suite.addTest(new CompletionTests("testBug310427a"));
+	suite.addTest(new CompletionTests("testBug310427b"));
+	suite.addTest(new CompletionTests("testBug195346a"));
+	suite.addTest(new CompletionTests("testBug195346b"));
+	suite.addTest(new CompletionTests("testBug304006a"));
+	suite.addTest(new CompletionTests("testBug304006b"));
+	suite.addTest(new CompletionTests("testBug304006c"));
+	suite.addTest(new CompletionTests("testBug304006d"));
+	suite.addTest(new CompletionTests("testBug304006e"));
+	suite.addTest(new CompletionTests("test325481"));
+	suite.addTest(new CompletionTests("test312603"));
+	suite.addTest(new CompletionTests("test328674a"));
+	suite.addTest(new CompletionTests("test328674b"));
+	suite.addTest(new CompletionTests("test325481b"));
+	suite.addTest(new CompletionTests("testBug332268a"));
+	suite.addTest(new CompletionTests("testBug332268b"));
+	return suite;
 }
 public CompletionTests(String name) {
 	super(name);
@@ -15656,17 +16598,19 @@
 	Object visibilityCheckPreviousValue = options.get(visibilityCheckID);
 	options.put(visibilityCheckID,"enabled");
 	JavaCore.setOptions(options);
-
 	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	ICompilationUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVisibilityCheck.java");
 
-	String str = cu.getSource();
-	String completeBehind = "x.p";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	options.put(visibilityCheckID,visibilityCheckPreviousValue);
-	JavaCore.setOptions(options);
+	try {
+		ICompilationUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVisibilityCheck.java");
+	
+		String str = cu.getSource();
+		String completeBehind = "x.p";
+		int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
+		cu.codeComplete(cursorLocation, requestor);
+	} finally {
+		options.put(visibilityCheckID,visibilityCheckPreviousValue);
+		JavaCore.setOptions(options);
+	}
 	assertEquals(
 		"should have two methods",
 		"element:protectedFoo    completion:protectedFoo()    relevance:"+(R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"\n" +
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests.java
index ffe9ca1..58c60b2 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ReconcilerTests.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Stephan Herrmann - contribution for bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment
  *     Technical University Berlin - adapted for Object Teams
  *******************************************************************************/
 package org.eclipse.jdt.core.tests.model;
@@ -773,6 +774,40 @@
 			annotation.discardWorkingCopy();
 	}
 }
+
+/*
+ * Bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment
+ * Ensures that an annotated package-info.java doesn't confuse the reconciler.
+ */
+public void testAnnotations6() throws CoreException {
+
+	createFolder("/Reconciler15/src/p1");
+
+	createFile("/Reconciler15/src/p1/package-info.java", "@java.lang.Deprecated package p1;");
+	createFile("/Reconciler15/src/p1/C.java",
+			"package p1;\n" +
+			"public class C {\n" +
+			"  static class Y extends C {}\n" +
+			"}"
+	);
+	ICompilationUnit myWC = getCompilationUnit("/Reconciler15/src/p1/C.java").getWorkingCopy(this.wcOwner, null);
+	org.eclipse.jdt.core.dom.CompilationUnit unit = myWC.reconcile(AST.JLS3, true, this.wcOwner, null);
+	assertProblems(
+			"Unexpected problems",
+			"----------\n" + 
+			"----------\n" + 
+			"----------\n" + 
+			"----------\n"
+	);
+	assertASTNodeEquals(
+			"Unexpected ast",
+			"package p1;\n" + 
+			"public class C {\n" + 
+			"static class Y extends C {\n" + 
+			"  }\n" + 
+			"}\n",
+			unit);
+}
 /*
  * Ensures that the AST broadcasted during a reconcile operation is correct.
  * (case of a working copy being reconciled with changes, creating AST and no problem detection)
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SelectionJavadocModelTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SelectionJavadocModelTests.java
index 0ab8eb8..7cb2752 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SelectionJavadocModelTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SelectionJavadocModelTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1311,4 +1311,230 @@
 			elements
 		);
 	}
+	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171019
+	// To verify that inheritDoc tag is recognized as a valid selection and
+	// pressing F3 on it navigates to the overriden method with the javadoc according to spec
+	// as documented in org.eclipse.jdt.internal.codeassist.SelectionEngine.InheritDocVisitor
+	public void testBug171019() throws CoreException {
+		this.wcOwner = new WorkingCopyOwner() {};
+		this.workingCopies = new ICompilationUnit[1];
+		this.workingCopies[0] = getWorkingCopy("/Tests/b171019/X.java",
+			"package b171019;\n" +
+			"interface X {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"interface Y extends X {\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 */\n" +
+			"	void foo(int x);\n\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to Y.foo(String)
+			"	 */\n" +
+			"	void foo(String s);\n" +
+			"}\n"
+		);
+		IJavaElement[] elements = new IJavaElement[2];
+		elements[0] = selectMethod(this.workingCopies[0], "@inheritDoc", 1);
+		elements[1] = selectMethod(this.workingCopies[0], "@inheritDoc", 2);
+		assertElementsEqual("Invalid selection(s)",
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]\n" + 
+			"foo(String) [in Y [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]",
+			elements
+		);
+	}
+	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171019
+	// To verify that inheritDoc tag is recognized as a valid selection and
+	// pressing F3 on it navigates to the overriden method with the javadoc according to spec
+	// as documented in org.eclipse.jdt.internal.codeassist.SelectionEngine.InheritDocVisitor
+	public void testBug171019b() throws CoreException {
+		this.wcOwner = new WorkingCopyOwner() {};
+		this.workingCopies = new ICompilationUnit[1];
+		this.workingCopies[0] = getWorkingCopy("/Tests/b171019/X.java",
+			"package b171019;\n" +
+			"interface X {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"class X1 implements X{\n" +
+			"	void foo(int x){}\n" +
+			"}\n" +
+			"class Y extends X1 {\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 */\n" +
+			"	void foo(int x);\n\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to Y.foo(String)
+			"	 */\n" +
+			"	void foo(String s);\n" +
+			"}\n"
+		);
+		IJavaElement[] elements = new IJavaElement[2];
+		elements[0] = selectMethod(this.workingCopies[0], "@inheritDoc", 1);
+		elements[1] = selectMethod(this.workingCopies[0], "@inheritDoc", 2);
+		assertElementsEqual("Invalid selection(s)",
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]\n" + 
+			"foo(String) [in Y [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]",
+			elements
+		);
+	}
+	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171019
+	// To verify that inheritDoc tag is recognized as a valid selection and
+	// pressing F3 on it navigates to the overriden method with the javadoc according to spec
+	// as documented in org.eclipse.jdt.internal.codeassist.SelectionEngine.InheritDocVisitor
+	public void testBug171019c() throws CoreException {
+		this.wcOwner = new WorkingCopyOwner() {};
+		this.workingCopies = new ICompilationUnit[1];
+		this.workingCopies[0] = getWorkingCopy("/Tests/b171019/X.java",
+			"package b171019;\n" +
+			"interface X1 {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo in X1..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"interface X2 {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo in X2..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"class X implements X1 {\n" +
+			"   /**\n" +
+			"	 * X desc of foo..\n" +
+			"	 */\n" +
+			"	void foo(int x){}\n" +
+			"}\n" +
+			"class Y extends X implements X2 {\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to X2.foo(int)
+			"	 */\n" +
+			"	void foo(int x);\n\n" +
+			"}\n"
+		);
+		IJavaElement[] elements = new IJavaElement[1];
+		elements[0] = selectMethod(this.workingCopies[0], "@inheritDoc", 1);
+		assertElementsEqual("Invalid selection(s)",
+			"foo(int) [in X2 [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]",
+			elements
+		);
+	}
+	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171019
+	// To verify that inheritDoc tag is recognized as a valid selection and
+	// pressing F3 on it navigates to the overriden method with the javadoc according to spec
+	// as documented in org.eclipse.jdt.internal.codeassist.SelectionEngine.InheritDocVisitor
+	public void testBug171019d() throws CoreException {
+		this.wcOwner = new WorkingCopyOwner() {};
+		this.workingCopies = new ICompilationUnit[1];
+		this.workingCopies[0] = getWorkingCopy("/Tests/b171019/X.java",
+			"package b171019;\n" +
+			"interface X1 {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo in X1..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"interface X2 {\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"class X implements X1 {\n" +
+			"   /**\n" +
+			"	 * X desc of foo..\n" +
+			"	 */\n" +
+			"	void foo(int x){}\n" +
+			"}\n" +
+			"class Y extends X implements X2 {\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 */\n" +
+			"	void foo(int x);\n\n" +
+			"}\n"
+		);
+		IJavaElement[] elements = new IJavaElement[1];
+		elements[0] = selectMethod(this.workingCopies[0], "@inheritDoc", 1);
+		assertElementsEqual("Invalid selection(s)",
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]",
+			elements
+		);
+	}
+	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171019
+	// To verify that inheritDoc tag is recognized as a valid selection and
+	// pressing F3 on it navigates to the overriden method with the javadoc according to spec
+	// as documented in org.eclipse.jdt.internal.codeassist.SelectionEngine.InheritDocVisitor
+	public void testBug171019e() throws CoreException {
+		this.wcOwner = new WorkingCopyOwner() {};
+		this.workingCopies = new ICompilationUnit[1];
+		this.workingCopies[0] = getWorkingCopy("/Tests/b171019/X.java",
+			"package b171019;\n" +
+			"interface X {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"interface Y {\n" +
+			"	void foo(String str);\n" +
+			"}\n" +
+			"abstract class Z implements X, Y {\n" +
+			"	/**\n" +
+			"	 * {@inheritDoc}\n" +	// navigates to X.foo(int)
+			"	 */\n" +
+			"	void foo(int x) {\n" +
+			"	}\n" +
+			"}"
+		);
+		IJavaElement[] elements = new IJavaElement[1];
+		elements[0] = selectMethod(this.workingCopies[0], "@inheritDoc", 1);
+		assertElementsEqual("Invalid selection(s)",
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]",
+			elements
+		);
+	}
+	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171019
+	// To verify that inheritDoc tag is recognized as a valid selection and
+	// pressing F3 on it navigates to the overriden method with the javadoc according to spec
+	// as documented in org.eclipse.jdt.internal.codeassist.SelectionEngine.InheritDocVisitor
+	// Here the inheritDoc should work when it occurs inside another valid block tag viz.
+	// @param, @throws, @exception, @return
+	public void testBug171019f() throws CoreException {
+		this.wcOwner = new WorkingCopyOwner() {};
+		this.workingCopies = new ICompilationUnit[1];
+		this.workingCopies[0] = getWorkingCopy("/Tests/b171019/X.java",
+			"package b171019;\n" +
+			"interface X {\n" +
+			"   /**\n" +
+			"	 * Main desc of foo..\n" +
+			"	 */\n" +
+			"	void foo(int x);\n" +
+			"}\n" +
+			"interface Y extends X {\n" +
+			"   /**\n" +
+			"	 * {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 * @param {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 * @return {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 * @throws {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 * @exception {@inheritDoc}\n" +	// should navigate to X.foo(int)
+			"	 */\n" +
+			"	void foo(int x);\n\n" +
+			"}\n"
+		);
+		IJavaElement[] elements = new IJavaElement[4];
+		elements[0] = selectMethod(this.workingCopies[0], "@inheritDoc", 1);
+		elements[1] = selectMethod(this.workingCopies[0], "@inheritDoc", 2);
+		elements[2] = selectMethod(this.workingCopies[0], "@inheritDoc", 3);
+		elements[3] = selectMethod(this.workingCopies[0], "@inheritDoc", 4);
+		assertElementsEqual("Invalid selection(s)",
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]\n" + 
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]\n" + 
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]\n" + 
+			"foo(int) [in X [in [Working copy] X.java [in b171019 [in <project root> [in Tests]]]]]",
+			elements
+		);
+	}
 }
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java
index b23f078..73da55e 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Stephan Herrmann - contribution for bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment
  *******************************************************************************/
 package org.eclipse.jdt.core.tests.model;
 
@@ -2518,4 +2519,40 @@
 	deleteProject("P2");
 }
 }
+// Bug 337868 - [compiler][model] incomplete support for package-info.java when using SearchableEnvironment
+// Ensure that package-info doesn't cause AbortCompilation from the HierarchyResolver.
+public void testPackageInfo01() throws CoreException {
+	try {
+		createJavaProject("P", new String[] {"src"}, new String[] {"JCL_LIB"}, new String[0], "bin");
+
+		createFolder("/P/src/p");
+		createFile(
+				"/P/src/p/package-info.java",
+				"/** Doc comment*/ package p;\n"
+			);
+		createFile(
+				"/P/src/p/A.java",
+				"package p;\n" +
+				"public class A {\n" +
+				"}\n"
+			);
+		createFile(
+				"/P/src/p/C.java",
+				"package p;\n" +
+				"public class C extends A {\n" +
+				"    void foo() {\n" +
+				"        class Bar extends C {}\n" +
+				"    }\n" +
+				"}\n"
+			);
+		ICompilationUnit cu = getCompilationUnit("/P/src/p/C.java");
+		IType type = cu.getType("C");
+		IMethod method = type.getMethod("foo", new String[0]);
+		IType local = method.getType("Bar", 1);
+		ITypeHierarchy cHierarchy = type.newTypeHierarchy(null);
+		assertTrue("Local type should be in the hierarchy", cHierarchy.contains(local));
+	} finally {
+		deleteProject("P");
+	}	
+}
 }