avoid test failure when indexer locks file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java
index 0d8f862..1de0721 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2012 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
@@ -87,38 +87,31 @@
 		ICompilationUnit cu= createCUfromTestFile(getPackageP(), "A");
 		IType classA= getType(cu, "A");
 
-		try{
-			CompilationUnitRewrite rewrite= new CompilationUnitRewrite(cu);
-			rewrite.setResolveBindings(false);
-			BodyDeclaration d;
-			DelegateCreator creator;
-			if (methodName != null) {
-				IMethod method= classA.getMethod(methodName, args);
-				d= ASTNodeSearchUtil.getMethodDeclarationNode(method, rewrite.getRoot());
-				creator= new DelegateMethodCreator();
-			}
-			else {
-				IField field= classA.getField(fieldName);
-				d= ASTNodeSearchUtil.getFieldDeclarationNode(field, rewrite.getRoot());
-				creator= new DelegateFieldCreator();
-			}
-
-			creator.setDeclaration(d);
-			creator.setSourceRewrite(rewrite);
-			creator.setCopy(copy);
-			if (newName != null) creator.setNewElementName(newName);
-			if (destination != null) creator.setNewLocation(destination);
-			creator.prepareDelegate();
-			creator.createEdit();
-			CompilationUnitChange createChange= rewrite.createChange(true);
-			createChange.initializeValidationData(new NullProgressMonitor());
-			createChange.perform(new NullProgressMonitor());
-			assertEqualLines("invalid delegate created", getFileContents(getOutputTestFileName("A")), cu.getSource());
-
-		} finally{
-			performDummySearch();
-			classA.getCompilationUnit().delete(true, null);
+		CompilationUnitRewrite rewrite= new CompilationUnitRewrite(cu);
+		rewrite.setResolveBindings(false);
+		BodyDeclaration d;
+		DelegateCreator creator;
+		if (methodName != null) {
+			IMethod method= classA.getMethod(methodName, args);
+			d= ASTNodeSearchUtil.getMethodDeclarationNode(method, rewrite.getRoot());
+			creator= new DelegateMethodCreator();
+		} else {
+			IField field= classA.getField(fieldName);
+			d= ASTNodeSearchUtil.getFieldDeclarationNode(field, rewrite.getRoot());
+			creator= new DelegateFieldCreator();
 		}
+
+		creator.setDeclaration(d);
+		creator.setSourceRewrite(rewrite);
+		creator.setCopy(copy);
+		if (newName != null) creator.setNewElementName(newName);
+		if (destination != null) creator.setNewLocation(destination);
+		creator.prepareDelegate();
+		creator.createEdit();
+		CompilationUnitChange createChange= rewrite.createChange(true);
+		createChange.initializeValidationData(new NullProgressMonitor());
+		createChange.perform(new NullProgressMonitor());
+		assertEqualLines("invalid delegate created", getFileContents(getOutputTestFileName("A")), cu.getSource());
 	}
 
 	public void testm01() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests/test plugin/org/eclipse/jdt/testplugin/JavaProjectHelper.java b/org.eclipse.jdt.ui.tests/test plugin/org/eclipse/jdt/testplugin/JavaProjectHelper.java
index e6bfd2f..b2e7c74 100644
--- a/org.eclipse.jdt.ui.tests/test plugin/org/eclipse/jdt/testplugin/JavaProjectHelper.java
+++ b/org.eclipse.jdt.ui.tests/test plugin/org/eclipse/jdt/testplugin/JavaProjectHelper.java
@@ -269,10 +269,11 @@
 	}
 
 	/**
-	 * Removes a IJavaElement
+	 * Removes a IJavaElement. Retries if deletion failed (e.g. because the indexer
+	 * still locks the file).
 	 *
-	 * @param elem The element to remove
-	 * @throws CoreException Removing failed
+	 * @param elem the element to delete
+	 * @throws CoreException if operation failed
 	 * @see #ASSERT_NO_MIXED_LINE_DELIMIERS
 	 */
 	public static void delete(final IJavaElement elem) throws CoreException {
@@ -293,6 +294,13 @@
 		emptyDisplayLoop();
 	}
 
+	/**
+	 * Removes a resource. Retries if deletion failed (e.g. because the indexer
+	 * still locks the file).
+	 * 
+	 * @param resource the resource to delete
+	 * @throws CoreException if operation failed
+	 */
 	public static void delete(IResource resource) throws CoreException {
 		for (int i= 0; i < MAX_RETRY; i++) {
 			try {