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 {