Bug 412486 - 40 failures in Rename* tests

Change-Id: If9e062ff85911cc18d3d98f6b5838d8c42fa2f1a
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
index 166a1ae..43bf121 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
@@ -38,6 +38,8 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugException;
 import org.eclipse.debug.core.DebugPlugin;
@@ -154,6 +156,7 @@
 import org.eclipse.ui.intro.IIntroPart;
 import org.eclipse.ui.progress.UIJob;
 import org.eclipse.ui.progress.WorkbenchJob;
+import org.osgi.service.prefs.BackingStoreException;
 
 import com.sun.jdi.InternalException;
 
@@ -250,7 +253,7 @@
 		assertWelcomeScreenClosed();
 	}
 
-	synchronized void setPreferences() {
+	synchronized void setPreferences() throws BackingStoreException {
 		if(!loadedPrefs) {
 	        IPreferenceStore debugUIPreferences = DebugUIPlugin.getDefault().getPreferenceStore();
 	        // Don't prompt for perspective switching
@@ -291,6 +294,14 @@
 	                ((WorkbenchWindow) window).showHeapStatus(false);
 	            }
 	        }
+	        
+	        //make sure we are auto-refreshing external workspace changes
+	        IEclipsePreferences node = InstanceScope.INSTANCE.getNode(ResourcesPlugin.PI_RESOURCES);
+	        if(node != null) {
+	        	node.putBoolean(ResourcesPlugin.PREF_AUTO_REFRESH, true);
+	        	node.putBoolean(ResourcesPlugin.PREF_LIGHTWEIGHT_AUTO_REFRESH, true);
+	        	node.flush();
+	        }
 	        loadedPrefs = true;
 		}
     }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
index 39a6ad8..55bf8fa 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/refactoring/AbstractRefactoringDebugTest.java
@@ -81,6 +81,11 @@
 			//see https://bugs.eclipse.org/bugs/show_bug.cgi?id=183206
 			throw new TestAgainException(jme.getLocalizedMessage());
 		}
+		catch(CoreException ce) {
+			//try the test again - the tests reset the workspace to remove any half-moved / change files
+			//see https://bugs.eclipse.org/bugs/show_bug.cgi?id=412486
+			throw new TestAgainException(ce.getLocalizedMessage());
+		}
 	}
 	
 	/**