diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/RenameTypePerfAcceptanceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/RenameTypePerfAcceptanceTests.java
index 3843f75..cc14c34 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/RenameTypePerfAcceptanceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/RenameTypePerfAcceptanceTests.java
@@ -63,7 +63,7 @@
 	}
 	
 	public void testWarm() throws Exception {
-		tagAsGlobalSummary("Rename of Control", new Dimension[] {Dimension.ELAPSED_PROCESS, Dimension.USED_JAVA_HEAP});
+		tagAsGlobalSummary("Rename of Control", new Dimension[] {Dimension.ELAPSED_PROCESS});
 		IType control= fProject.findType("org.eclipse.swt.widgets.Control2");
 		RenameTypeProcessor processor= new RenameTypeProcessor(control);
 		processor.setNewElementName("Control");
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfaceHeapAcceptanceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfaceHeapAcceptanceTests.java
index da7e82a..8443c90 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfaceHeapAcceptanceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfaceHeapAcceptanceTests.java
@@ -20,17 +20,12 @@
 import org.eclipse.jdt.core.IMember;
 import org.eclipse.jdt.core.IMethod;
 import org.eclipse.jdt.core.IType;
-
-import org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor;
 import org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceRefactoring;
-
 import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
-
-import org.eclipse.test.performance.Dimension;
-
 import org.eclipse.jdt.ui.tests.performance.SWTTestProject;
 import org.eclipse.jdt.ui.tests.refactoring.infra.RefactoringHeapTestCase;
 import org.eclipse.jdt.ui.tests.refactoring.infra.RefactoringPerformanceTestSetup;
+import org.eclipse.test.performance.Dimension;
 
 public class ExtractInterfaceHeapAcceptanceTests extends RefactoringHeapTestCase {
 	
@@ -56,7 +51,7 @@
 		super.setUp();
 		fProject= new SWTTestProject();
 		IType control= fProject.getProject().findType("org.eclipse.swt.widgets.Control");
-		fRefactoring= ExtractInterfaceRefactoring.create(control, JavaPreferencesSettings.getCodeGenerationSettings(fProject.getProject()));
+		fRefactoring= ExtractInterfaceRefactoring.create(control, JavaPreferencesSettings.getCodeGenerationSettings());
 		IMethod[] methods= control.getMethods();
 		List extractedMembers= new ArrayList();
 		for (int i= 0; i < methods.length; i++) {
@@ -66,10 +61,9 @@
 				extractedMembers.add(method);
 			}
 		}
-		ExtractInterfaceProcessor processor= fRefactoring.getExtractInterfaceProcessor();
-		processor.setTypeName("IControl");
-		processor.setExtractedMembers((IMember[])extractedMembers.toArray(new IMember[extractedMembers.size()]));
-		processor.setReplace(true);
+		fRefactoring.setNewInterfaceName("IControl");
+		fRefactoring.setExtractedMembers((IMember[])extractedMembers.toArray(new IMember[extractedMembers.size()]));
+		fRefactoring.setReplaceOccurrences(true);
 	}
 	
 	protected void tearDown() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfacePerfAcceptanceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfacePerfAcceptanceTests.java
index daf56cb..a714d60 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfacePerfAcceptanceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/ExtractInterfacePerfAcceptanceTests.java
@@ -72,7 +72,7 @@
 	}
 	
 	public void testExtractControl() throws Exception {
-		tagAsSummary("Extract Interface", new Dimension[] {Dimension.CPU_TIME, Dimension.USED_JAVA_HEAP});
+		tagAsSummary("Extract Interface - Elapsed Process", new Dimension[] {Dimension.ELAPSED_PROCESS});
 		executeRefactoring(fRefactoring, true);
 	}
 }
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test.xml b/org.eclipse.jdt.ui.tests.refactoring/test.xml
index cc46358..228421f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test.xml
+++ b/org.eclipse.jdt.ui.tests.refactoring/test.xml
@@ -98,6 +98,11 @@
 		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
 			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.type.ExtractInterfacePerfAcceptanceTests" />
 		</ant>
+		
+		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true" />
+		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.type.ExtractInterfaceHeapAcceptanceTests" />
+		</ant>
 	</target>
 
 	<!-- This target holds code to cleanup the testing environment after -->
