Bug 535344 - Replace StringBuffer with StringBuilder

Similar to Bug 533897 for JDT.UI we should do the same for jdt.debug
Only remaning usage is in ImportBreakpointsTest.java as
ImportBreakpointsOperation uses it in its constructor.

Change-Id: Ieabad25edbe73e9395bf283fe8628b24861232cd
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
diff --git a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java
index e60580b..7adcb30 100644
--- a/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java
+++ b/org.eclipse.jdt.debug.jdi.tests/tests/org/eclipse/debug/jdi/tests/AbstractJDITest.java
@@ -736,7 +736,7 @@
 	private void launchSunTarget() {
 		try {
 			// Launch target VM
-			StringBuffer binDirectory= new StringBuffer();
+			StringBuilder binDirectory= new StringBuilder();
 			if (fTargetAddress.endsWith("jre")) {
 				binDirectory.append(fTargetAddress.substring(0, fTargetAddress.length() - 4));
 			} else {
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 bfd3a57..aaa5fa2 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
@@ -1064,7 +1064,7 @@
 		ILaunch launch = configuration.launch(mode, null, false, register);
 		Object suspendee= waiter.waitForEvent();
 		if (suspendee == null) {
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
             buf.append("Test case: "); //$NON-NLS-1$
             buf.append(getName());
             buf.append("\n"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java
index c77c93a..9dc2f9d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/BreakpointMethodLocator.java
@@ -91,7 +91,7 @@
 		if (node.getExtraDimensions() != 0 || Modifier.isAbstract(node.getModifiers())) {
 			return null;
 		}
-		StringBuffer signature= new StringBuffer();
+		StringBuilder signature= new StringBuilder();
 		signature.append('(');
 		List<SingleVariableDeclaration> parameters = node.parameters();
 		for (Iterator<SingleVariableDeclaration> iter = parameters.iterator(); iter.hasNext();) {
@@ -113,7 +113,7 @@
 		return signature.toString();
 	}
 
-	private void appendTypeLetter(StringBuffer signature, PrimitiveType type) {
+	private void appendTypeLetter(StringBuilder signature, PrimitiveType type) {
 		PrimitiveType.Code code= type.getPrimitiveTypeCode();
 		if (code == PrimitiveType.BYTE) {
 			signature.append('B');
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java
index 68d4138..c0b2c45 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/ConditionalBreakpointsWithGenerics.java
@@ -247,7 +247,7 @@
 		String type = "a.b.c.bug403028";
 		IJavaThread thread = null;
 		try {
-			String condition = "StringBuffer buf = new StringBuffer();"
+			String condition = "StringBuilder buf = new StringBuilder();"
 					+ "buf.append(\"{\");"
 					+ "Iterator i = this.entrySet().iterator();"
 					+ "boolean hasNext = i.hasNext();"
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
index d18597f..5d233cb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ArgumentTests.java
@@ -42,7 +42,7 @@
 
 	private class ConsoleArgumentOutputRetriever implements IConsoleLineTrackerExtension {
 
-		StringBuffer buffer;
+		StringBuilder buffer;
 		IDocument document;
 		boolean closed = false;
 
@@ -57,7 +57,7 @@
 		 */
 		@Override
 		public void init(IConsole console) {
-			buffer = new StringBuffer();
+			buffer = new StringBuilder();
 			document = console.getDocument();
 		}
 
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java
index f7a9b46..0d4d0ba 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/VMInstallTests.java
@@ -253,7 +253,7 @@
 	 * @return preference store key
 	 */
 	private String getSystemPropertyKey(IVMInstall vm, String property) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("PREF_VM_INSTALL_SYSTEM_PROPERTY");
 		buffer.append("."); //$NON-NLS-1$
 		buffer.append(vm.getVMInstallType().getId());
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java
index 63236e9..d3ee66f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/NestedTypeTestGenerator.java
@@ -120,7 +120,7 @@
 	}
 
 	public static void gen_AA_aa() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('c', 2, code);
@@ -142,7 +142,7 @@
 	}
 
 	public static void gen_AA_aaStatic() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('d', 2, code);
@@ -155,7 +155,7 @@
 	}
 
 	public static void gen_AB_ab() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('c', 2, code);
@@ -182,7 +182,7 @@
 	}
 
 	public static void gen_AC_ac() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('g', 2, code);
@@ -197,7 +197,7 @@
 	}
 
 	public static void gen_AD_ad() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('g', 2, code);
@@ -212,7 +212,7 @@
 	}
 
 	public static void gen_A_a() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 1, code);
 		createTest('c', 1, code);
@@ -236,7 +236,7 @@
 	}
 
 	public static void gen_AE_ae() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('h', 2, code);
@@ -246,7 +246,7 @@
 	}
 
 	public static void gen_AF_af() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTest('h', 2, code);
@@ -256,7 +256,7 @@
 	}
 
 	public static void gen_A_aStatic() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 1, code);
 		createTest('d', 1, code);
@@ -274,7 +274,7 @@
 	}
 
 	public static void gen_BB_bb() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -308,7 +308,7 @@
 	}
 
 	public static void gen_BC_bc() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -330,7 +330,7 @@
 	}
 
 	public static void gen_BD_bd() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -352,7 +352,7 @@
 	}
 
 	public static void gen_B_b() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 1, code);
 		createTest('b', 1, code);
@@ -384,7 +384,7 @@
 	}
 
 	public static void gen_CB_cb() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -400,7 +400,7 @@
 	}
 
 	public static void gen_CC_cc() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -416,7 +416,7 @@
 	}
 
 	public static void gen_CD_cd() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -432,7 +432,7 @@
 	}
 
 	public static void gen_C_c() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 1, code);
 		createTest('b', 1, code);
@@ -450,7 +450,7 @@
 	}
 
 	public static void gen_DB_db() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -466,7 +466,7 @@
 	}
 
 	public static void gen_DC_dc() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -482,7 +482,7 @@
 	}
 
 	public static void gen_DD_dd() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 2, code);
 		createTest('b', 2, code);
@@ -498,7 +498,7 @@
 	}
 
 	public static void gen_D_d() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('a', 1, code);
 		createTest('b', 1, code);
@@ -516,7 +516,7 @@
 	}
 
 	public static void gen_evalNestedTypeTest() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 
 		createTest('a', 0, code);
@@ -547,7 +547,7 @@
 	}
 
 	public static void gen_EB_eb() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -556,7 +556,7 @@
 	}
 
 	public static void gen_EC_ec() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -565,7 +565,7 @@
 	}
 
 	public static void gen_ED_ed() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -574,7 +574,7 @@
 	}
 
 	public static void gen_E_e() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 1, code);
 		createTest('f', 1, code);
@@ -584,7 +584,7 @@
 	}
 
 	public static void gen_FB_fb() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -593,7 +593,7 @@
 	}
 
 	public static void gen_FC_fc() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -602,7 +602,7 @@
 	}
 
 	public static void gen_FD_fd() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 2, code);
 		createTestsStaticFields(code);
@@ -611,7 +611,7 @@
 	}
 
 	public static void gen_F_f() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 1, code);
 		createTest('f', 1, code);
@@ -621,7 +621,7 @@
 	}
 
 	public static void gen_evalNestedTypeTestStatic() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest('b', 0, code);
 		createTest('d', 0, code);
@@ -648,7 +648,7 @@
 	}
 
 	public static void gen_main() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTestsStaticFields(code);
 
@@ -657,7 +657,7 @@
 
 	// ------------------------------
 
-	public static void createTestsStaticFields(StringBuffer code) {
+	public static void createTestsStaticFields(StringBuilder code) {
 		createTestQualifier(T_T, 'b', code);
 		createTestQualifier(T_T, 'd', code);
 		createTestQualifier(T_T, 'f', code);
@@ -689,7 +689,7 @@
 		createTestQualifier(T_B_BB, 'j', code);
 	}
 
-	public static void createTestsStaticFields_A(StringBuffer code) {
+	public static void createTestsStaticFields_A(StringBuilder code) {
 		createTestsStaticFields(code);
 		createTestQualifier(T_AA, 'd', code);
 		createTestQualifier(T_AA, 'f', code);
@@ -699,7 +699,7 @@
 		createTestQualifier(T_AB, 'j', code);
 	}
 
-	public static void createTestsStaticFields_B(StringBuffer code) {
+	public static void createTestsStaticFields_B(StringBuilder code) {
 		createTestsStaticFields(code);
 		createTestQualifier(T_BB, 'd', code);
 		createTestQualifier(T_BB, 'f', code);
@@ -708,7 +708,7 @@
 
 	// ------------------------------
 
-	public static void createTest(char variable, int level, StringBuffer code) {
+	public static void createTest(char variable, int level, StringBuilder code) {
 		code.append("\tpublic void testEvalNestedTypeTest_" + variable + "() throws Throwable {\n");
 		tryBlockBegin(code);
 
@@ -725,7 +725,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void createTestThis(char variable, int level, StringBuffer code) {
+	public static void createTestThis(char variable, int level, StringBuilder code) {
 		code.append("\tpublic void testEvalNestedTypeTest_this_" + variable + "() throws Throwable {\n");
 		tryBlockBegin(code);
 
@@ -744,7 +744,7 @@
 
 
 
-	public static void createTestQualifier(int qualifier, char variable, StringBuffer code) {
+	public static void createTestQualifier(int qualifier, char variable, StringBuilder code) {
 		String strQualifier= qualifiers[qualifier];
 		code.append("\tpublic void testEvalNestedTypeTest_" + strQualifier + "_" + variable + "() throws Throwable {\n");
 		tryBlockBegin(code);
@@ -764,9 +764,9 @@
 
 	//---------------------
 
-	public static void createJavaFile(StringBuffer tests, int lineNumber, int numberFrames) throws Exception {
+	public static void createJavaFile(StringBuilder tests, int lineNumber, int numberFrames) throws Exception {
 
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java
index b34c075..97b30f9 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/OtherTestsGenerator.java
@@ -33,7 +33,7 @@
 	}
 
 	public static void genTestsOperators1() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		genTestTypeBinaryOpTypeBinaryPromotion(T_int, Op_plus, T_int, code);
 		genTestTypeBinaryOpTypeBinaryPromotion(T_String, Op_plus, T_String, code);
@@ -44,7 +44,7 @@
 	}
 
 	public static void genTestsOperators2() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		genTestLocalVarAssignment(T_int, code);
 		genTestLocalVarAssignment(T_String, code);
@@ -55,7 +55,7 @@
 	}
 
 	public static void genTestsArray() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		genTestArrayValue(T_int, code);
 		genTestArrayLength(T_int, code);
@@ -71,7 +71,7 @@
 	}
 
 	public static void genTestsNestedTypes1() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		NestedTypeTestGenerator.createTest('a', 2, code);
 		NestedTypeTestGenerator.createTest('d', 2, code);
@@ -103,7 +103,7 @@
 	}
 
 	public static void genTestsNestedTypes2() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		NestedTypeTestGenerator.createTest('f', 0, code);
 		NestedTypeTestGenerator.createTestQualifier(NestedTypeTestGenerator.T_T, 'b', code);
@@ -130,7 +130,7 @@
 
 
 	public static void genTestsTypeHierarchy1() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.IAA, TypeHierarchyTestsGenerator.M1, code);
 		TypeHierarchyTestsGenerator.createTestQualifier(TypeHierarchyTestsGenerator.AA, TypeHierarchyTestsGenerator.M2, code);
@@ -159,7 +159,7 @@
 	}
 
 	public static void genTestsTypeHierarchy2() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		TypeHierarchyTestsGenerator.createTest_TestC(code, TypeHierarchyTestsGenerator.CC);
 
@@ -170,7 +170,7 @@
 	 * Method genTestNumberLiteral.
 	 */
 	private static void genTestNumberLiteral() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTestNumberLiteral1("0", T_int, code);
 		createTestNumberLiteral1("00", T_int, code);
@@ -234,7 +234,7 @@
 	/**
 	 * Method createTestNumberLiteral.
 	 */
-	private static void createTestNumberLiteral1(String literal, int type, StringBuffer code) {
+	private static void createTestNumberLiteral1(String literal, int type, StringBuilder code) {
 		String tName= fTypeName[type];
 
 		code.append("\tpublic void test" + literal.replace('-', 'N').replace('.', '_').replace('+', 'P') + "() throws Throwable {\n");
@@ -249,7 +249,7 @@
 	/**
 	 * Method createTestNumberLiteral.
 	 */
-	private static void createTestNumberLiteral2(String literal, int type, StringBuffer code) {
+	private static void createTestNumberLiteral2(String literal, int type, StringBuilder code) {
 		String tName= fTypeName[type];
 
 		code.append("\tpublic void test" + literal.replace('-', 'N').replace('.', '_').replace('+', 'P') + "() throws Throwable {\n");
@@ -265,13 +265,13 @@
 	}
 
 
-	public static void createJavaFile(StringBuffer tests, String className, String testClass, int lineNumber, int numberFrames, int hitCount) throws Exception {
+	public static void createJavaFile(StringBuilder tests, String className, String testClass, int lineNumber, int numberFrames, int hitCount) throws Exception {
 		createJavaFile(tests, className, testClass, lineNumber, numberFrames, hitCount, true);
 	}
 
-	public static void createJavaFile(StringBuffer tests, String className, String testClass, int lineNumber, int numberFrames, int hitCount, boolean importJDIObjectValue) throws Exception {
+	public static void createJavaFile(StringBuilder tests, String className, String testClass, int lineNumber, int numberFrames, int hitCount, boolean importJDIObjectValue) throws Exception {
 
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java
index 46622de..230fb2f 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TestGenerator.java
@@ -185,7 +185,7 @@
 
 	public static void genTestsNumericTypeAllOpsAllTypes(int type) throws Exception {
 
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = typeUpperName[type] + "OperatorsTests";
 
@@ -221,7 +221,7 @@
 	}
 
 	public static void genTestsBooleanAllOpsBoolean() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "BooleanOperatorsTests";
 
@@ -235,7 +235,7 @@
 
 	public static void genTestsStringPlusOpAllTypes() throws Exception {
 
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "StringPlusOpTests";
 
@@ -256,7 +256,7 @@
 	}
 
 	public static void genTestsLocalVarValue() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "LocalVarValueTests";
 
@@ -278,7 +278,7 @@
 	}
 
 	public static void genTestsLocalVarAssignment() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "LocalVarAssignmentTests";
 
@@ -300,7 +300,7 @@
 
 	public static void genTestsNumericTypeAllAssignmentOpsAllTypes(int type) throws Exception {
 
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = typeUpperName[type] + "AssignmentOperatorsTests";
 
@@ -324,7 +324,7 @@
 	}
 
 	public static void genTestsBooleanAllAssignmentOpsBoolean() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "BooleanAssignmentOperatorsTests";
 
@@ -345,7 +345,7 @@
 
 	public static void genTestsStringPlusAssignmentOpAllTypes() throws Exception {
 
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "StringPlusAssignmentOpTests";
 
@@ -366,7 +366,7 @@
 	}
 
 	public static void genTestsNumericTypeCast() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "NumericTypesCastTests";
 
@@ -382,7 +382,7 @@
 	}
 
 	public static void genTestsAllIntegerTypesAllXfixOps() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "XfixOperatorsTests";
 
@@ -398,7 +398,7 @@
 	}
 
 	public static void genTestsQualifiedFieldValue() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "QualifiedFieldValueTests";
 
@@ -416,7 +416,7 @@
 	}
 
 	public static void genTestsQualifiedStaticFieldValue() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "QualifiedStaticFieldValueTests";
 
@@ -432,7 +432,7 @@
 
 		createJavaFile(className, "EvalTypeTests", 73, 1, true, code);
 
-		code = new StringBuffer();
+		code = new StringBuilder();
 
 		className = "QualifiedStaticFieldValueTests2";
 
@@ -450,7 +450,7 @@
 	}
 
 	public static void genTestsFieldValue() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "FieldValueTests";
 
@@ -468,7 +468,7 @@
 	}
 
 	public static void genTestsStaticFieldValue() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "StaticFieldValueTests";
 
@@ -490,7 +490,7 @@
 	}
 
 	public static void genTestsArrayValue() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "ArrayValueTests";
 
@@ -518,7 +518,7 @@
 	}
 
 	public static void genTestsArrayAssignment() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "ArrayAssignmentTests";
 
@@ -536,7 +536,7 @@
 	}
 
 	public static void genTestsArrayAllocation() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "ArrayAllocationTests";
 
@@ -554,7 +554,7 @@
 	}
 
 	public static void genTestsArrayInitialization() throws Exception {
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		String className = "ArrayInitializationTests";
 
@@ -572,7 +572,7 @@
 	}
 	//----------------------------
 
-	public static void genTestsNumericTypeArithmeticOpNumericTypes(int type, int op, StringBuffer code) {
+	public static void genTestsNumericTypeArithmeticOpNumericTypes(int type, int op, StringBuilder code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
@@ -587,7 +587,7 @@
 
 	}
 
-	public static void genTestsNumericTypeComparisonOpNumericTypes(int type, int op, StringBuffer code) {
+	public static void genTestsNumericTypeComparisonOpNumericTypes(int type, int op, StringBuilder code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
@@ -602,7 +602,7 @@
 
 	}
 
-	public static void genTestsIntegerTypeShiftOpIntegerTypes(int type, int op, StringBuffer code) {
+	public static void genTestsIntegerTypeShiftOpIntegerTypes(int type, int op, StringBuilder code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + "}\n" +
 					"\n");
@@ -615,7 +615,7 @@
 
 	}
 
-	public static void genTestsIntegerTypeBooleanOpIntegerTypes(int type, int op, StringBuffer code) {
+	public static void genTestsIntegerTypeBooleanOpIntegerTypes(int type, int op, StringBuilder code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + "}\n" +
 					"\n");
@@ -628,7 +628,7 @@
 
 	}
 
-	public static void genTestsNumericTypeArithmeticAssignmentOpNumericTypes(int type, int op, StringBuffer code) {
+	public static void genTestsNumericTypeArithmeticAssignmentOpNumericTypes(int type, int op, StringBuilder code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
@@ -643,7 +643,7 @@
 
 	}
 
-	public static void genTestsIntegerTypeArithmeticAssignmentOpIntegerTypes(int type, int op, StringBuffer code) {
+	public static void genTestsIntegerTypeArithmeticAssignmentOpIntegerTypes(int type, int op, StringBuilder code) {
 
 		code.append("\t// " + fTypeName[type] + " " + opSymbol[op] + " {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
@@ -656,7 +656,7 @@
 
 	}
 
-	public static void genTestsNumericTypeCast(int type, StringBuffer code) {
+	public static void genTestsNumericTypeCast(int type, StringBuilder code) {
 
 		code.append("\t// (" + fTypeName[type] + ") {" + fTypeName[T_byte] + ", " + fTypeName[T_char] + ", " + fTypeName[T_short] + ", " + fTypeName[T_int] + ", " + fTypeName[T_long] + ", " + fTypeName[T_float] + ", " + fTypeName[T_double] + "}\n" +
 					"\n");
@@ -671,7 +671,7 @@
 
 	}
 
-	public static void genTestsNumericTypeAllXfixOps(int type, StringBuffer code) {
+	public static void genTestsNumericTypeAllXfixOps(int type, StringBuilder code) {
 
 		code.append("\t// {" + opSymbol[Op_prefixPlusPlus] + ", " + opSymbol[Op_prefixMinusMinus] + "} " + fTypeName[type] + "\n" +
 					"\t// " + fTypeName[type] + " {" + opSymbol[Op_postfixPlusPlus] + ", " + opSymbol[Op_postfixMinusMinus] + "}\n" +
@@ -685,7 +685,7 @@
 
 	//----------------------------
 
-	public static void genTestTypeBinaryOpTypeBinaryPromotion(int type1, int op, int type2, StringBuffer code) {
+	public static void genTestTypeBinaryOpTypeBinaryPromotion(int type1, int op, int type2, StringBuilder code) {
 
 		int promotedType = getPromotionType(type1, type2);
 
@@ -702,7 +702,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestTypeBinaryOpTypeBooleanResult(int type1, int op, int type2, StringBuffer code) {
+	public static void genTestTypeBinaryOpTypeBooleanResult(int type1, int op, int type2, StringBuilder code) {
 
 		int promotedType = T_boolean;
 
@@ -722,7 +722,7 @@
 
 	}
 
-	public static void genTestTypeBinaryOpTypeUnaryPromotion(int type1, int op, int type2, StringBuffer code) {
+	public static void genTestTypeBinaryOpTypeUnaryPromotion(int type1, int op, int type2, StringBuilder code) {
 
 		int promotedType = getUnaryPromotionType(type1);
 
@@ -739,7 +739,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestBooleanBinaryOpBoolean(int op, StringBuffer code) {
+	public static void genTestBooleanBinaryOpBoolean(int op, StringBuilder code) {
 
 		int type = T_boolean;
 
@@ -763,7 +763,7 @@
 
 	}
 
-	public static void genTestUnaryOpNumericType(int type, int op, StringBuffer code) {
+	public static void genTestUnaryOpNumericType(int type, int op, StringBuilder code) {
 
 		int promotedType = getUnaryPromotionType(type);
 
@@ -784,7 +784,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestUnaryOpBoolean(int op, StringBuffer code) {
+	public static void genTestUnaryOpBoolean(int op, StringBuilder code) {
 
 		int type = T_boolean;
 
@@ -804,7 +804,7 @@
 
 	}
 
-	public static void genTestLocalVarValue(int type, StringBuffer code ) {
+	public static void genTestLocalVarValue(int type, StringBuilder code ) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "() throws Throwable {\n");
@@ -816,7 +816,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestLocalVarAssignment(int type, StringBuffer code) {
+	public static void genTestLocalVarAssignment(int type, StringBuilder code) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "() throws Throwable {\n");
@@ -832,7 +832,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestTypeAssignmentOpType(int type1, int op, int type2, StringBuffer code) {
+	public static void genTestTypeAssignmentOpType(int type1, int op, int type2, StringBuilder code) {
 
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
@@ -857,7 +857,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestNumericTypeCast(int type1, int type2, StringBuffer code) {
+	public static void genTestNumericTypeCast(int type1, int type2, StringBuilder code) {
 
 		String t1UName = typeUpperName[type1];
 		String t2UName = typeUpperName[type2];
@@ -872,7 +872,7 @@
 
 	}
 
-	public static void genTestNumericTypePrefixOp(int type, int op, StringBuffer code) {
+	public static void genTestNumericTypePrefixOp(int type, int op, StringBuilder code) {
 
 		String tUName = typeUpperName[type];
 		String oUName = opUpperName[op];
@@ -886,7 +886,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestNumericTypePostfixOp(int type, int op, StringBuffer code) {
+	public static void genTestNumericTypePostfixOp(int type, int op, StringBuilder code) {
 
 		String tUName = typeUpperName[type];
 		String oUName = opUpperName[op];
@@ -900,7 +900,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestFieldValue(int type, int prefix, StringBuffer code ) {
+	public static void genTestFieldValue(int type, int prefix, StringBuilder code ) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "FieldValue() throws Throwable {\n");
@@ -912,7 +912,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestStaticFieldValue(int type, int prefix, StringBuffer code ) {
+	public static void genTestStaticFieldValue(int type, int prefix, StringBuilder code ) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "StaticFieldValue() throws Throwable {\n");
@@ -924,7 +924,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestArrayValue(int type, StringBuffer code ) {
+	public static void genTestArrayValue(int type, StringBuilder code ) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "ArrayValue() throws Throwable {\n");
@@ -944,7 +944,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestArrayLength(int type, StringBuffer code ) {
+	public static void genTestArrayLength(int type, StringBuilder code ) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "ArrayLength() throws Throwable {\n");
@@ -956,7 +956,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestArrayAssignment(int type, StringBuffer code ) {
+	public static void genTestArrayAssignment(int type, StringBuilder code ) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "ArrayAssignment() throws Throwable {\n");
@@ -976,7 +976,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestArrayAllocation(int type, StringBuffer code) {
+	public static void genTestArrayAllocation(int type, StringBuilder code) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "ArrayAllocation() throws Throwable {\n");
@@ -988,7 +988,7 @@
 		code.append("\t}\n\n");
 	}
 
-	public static void genTestArrayInitialization(int type, StringBuffer code) {
+	public static void genTestArrayInitialization(int type, StringBuilder code) {
 		String tUName = typeUpperName[type];
 
 		code.append("\tpublic void test" + tUName + "ArrayAllocation() throws Throwable {\n");
@@ -1002,7 +1002,7 @@
 
 	//-------------------------------
 
-	public static void genCodeBinaryOp(int type1, int op, int type2, int resultType, int var1, int var2, boolean first, StringBuffer code) {
+	public static void genCodeBinaryOp(int type1, int op, int type2, int resultType, int var1, int var2, boolean first, StringBuilder code) {
 
 		String t1Name = fTypeName[type1];
 		String t1UName = typeUpperName[type1];
@@ -1031,7 +1031,7 @@
 		}
 	}
 
-	public static void genCodeUnaryOp(int type, int op, int resultType, int var, boolean first, StringBuffer code) {
+	public static void genCodeUnaryOp(int type, int op, int resultType, int var, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1050,14 +1050,14 @@
 		}
 	}
 
-	public static void genCodeLocalVarValue(int type, int var, boolean first, StringBuffer code) {
+	public static void genCodeLocalVarValue(int type, int var, boolean first, StringBuilder code) {
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
 
 		genCodeLocalVarValue(type,var, vName + tUName + "Value", first, code);
 	}
 
-	public static void genCodeLocalVarValue(int type, int var, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeLocalVarValue(int type, int var, String referenceExpression, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1079,7 +1079,7 @@
 		}
 	}
 
-	public static void genCodeLocalVarAssignment(int type, int var, int imm, boolean first, StringBuffer code) {
+	public static void genCodeLocalVarAssignment(int type, int var, int imm, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1104,7 +1104,7 @@
 		genCodeLocalVarValue(type, var, iName + tUName + "Value", false, code);
 	}
 
-	public static void genCodeAssignmentOp(int type1, int op, int type2, int var, int imm, boolean first, StringBuffer code) {
+	public static void genCodeAssignmentOp(int type1, int op, int type2, int var, int imm, boolean first, StringBuilder code) {
 		String t1Name = fTypeName[type1];
 		String t1UName = typeUpperName[type1];
 		String t2Name = fTypeName[type2];
@@ -1130,7 +1130,7 @@
 		genCodeLocalVarValue(type1, var, "tmp" + vName, false, code);
 	}
 
-	public static void genCodeCast(int type1, int type2, int imm, boolean first, StringBuffer code) {
+	public static void genCodeCast(int type1, int type2, int imm, boolean first, StringBuilder code) {
 		String t1Name = fTypeName[type1];
 		String t1UName = typeUpperName[type1];
 		String t2Name = fTypeName[type2];
@@ -1146,7 +1146,7 @@
 		}
 	}
 
-	public static void genCodePrefixOp(int type, int op, int var, boolean first, StringBuffer code) {
+	public static void genCodePrefixOp(int type, int op, int var, boolean first, StringBuilder code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1164,7 +1164,7 @@
 		genCodeLocalVarValue(type, var, "tmp" + vName, false, code);
 	}
 
-	public static void genCodePostfixOp(int type, int op, int var, boolean first, StringBuffer code) {
+	public static void genCodePostfixOp(int type, int op, int var, boolean first, StringBuilder code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1182,14 +1182,14 @@
 		genCodeLocalVarValue(type, var, "tmp" + vName, false, code);
 	}
 
-	public static void genCodeFieldValue(int type, int var, int prefix, boolean first, StringBuffer code) {
+	public static void genCodeFieldValue(int type, int var, int prefix, boolean first, StringBuilder code) {
 		String tUName = typeUpperName[type];
 		String fName = field[var];
 
 		genCodeFieldValue(type, var, prefix, fName + tUName + "Value", first, code);
 	}
 
-	public static void genCodeFieldValue(int type, int var, int prefix, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeFieldValue(int type, int var, int prefix, String referenceExpression, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1212,7 +1212,7 @@
 		}
 	}
 
-	public static void genCodeArrayLength(int type, int var, boolean first, StringBuffer code) {
+	public static void genCodeArrayLength(int type, int var, boolean first, StringBuilder code) {
 
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1221,7 +1221,7 @@
 
 	}
 
-	public static void genCodeArrayLength(int type, int var, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeArrayLength(int type, int var, String referenceExpression, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1232,7 +1232,7 @@
 		genCodeReturnValueCheckPrimitiveType(tName + " array length", fTypeName[T_int], typeUpperName[T_int], referenceExpression, first, code);
 	}
 
-	public static void genCodeArrayValue(int type, int var, int index, boolean first, StringBuffer code) {
+	public static void genCodeArrayValue(int type, int var, int index, boolean first, StringBuilder code) {
 
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1240,7 +1240,7 @@
 		genCodeArrayValue(type, var, index, vName + tUName + "Value[" + index + "]", first, code);
 	}
 
-	public static void genCodeArrayValue(int type, int var, int index, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeArrayValue(int type, int var, int index, String referenceExpression, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1262,7 +1262,7 @@
 		}
 	}
 
-	public static void genCodeArrayAssignment(int type, int var, int index, int imm, boolean first, StringBuffer code) {
+	public static void genCodeArrayAssignment(int type, int var, int index, int imm, boolean first, StringBuilder code) {
 
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
@@ -1287,7 +1287,7 @@
 		genCodeArrayValue(type, var, index, iName + tUName + "Value", false, code);
 	}
 
-	public static void genCodeArrayAllocation(int type, int var, int dim, boolean first, StringBuffer code) {
+	public static void genCodeArrayAllocation(int type, int var, int dim, boolean first, StringBuilder code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String charUName = typeUpperName[T_char];
@@ -1303,7 +1303,7 @@
 		genCodeArrayLength(type, var, iName + charUName + "Value", false, code);
 	}
 
-	public static void genCodeArrayInitialization(int type, int var, boolean first, StringBuffer code) {
+	public static void genCodeArrayInitialization(int type, int var, boolean first, StringBuilder code) {
 		String tName = fTypeName[type];
 		String tUName = typeUpperName[type];
 		String vName = fVariable[var];
@@ -1337,57 +1337,57 @@
 
 	//----------------------------
 
-	public static void genCodeEval(String expression, boolean first, StringBuffer code) {
+	public static void genCodeEval(String expression, boolean first, StringBuilder code) {
 		code.append("\t\t" + ((first)? "IValue " : IInternalDebugCoreConstants.EMPTY_STRING) + "value = eval(" + expression + ");\n");
 	}
 
-	public static void genCodeReturnTypeCheck(String test, String typeName, boolean first, StringBuffer code) {
+	public static void genCodeReturnTypeCheck(String test, String typeName, boolean first, StringBuilder code) {
 		code.append("\t\t" + ((first)? "String " : IInternalDebugCoreConstants.EMPTY_STRING) + "typeName = value.getReferenceTypeName();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong type : \", \"" + typeName + "\", typeName);\n");
 	}
 
-	public static void genCodeReturnValueCheckPrimitiveType(String test, String resType, String uResType, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeReturnValueCheckPrimitiveType(String test, String resType, String uResType, String referenceExpression, boolean first, StringBuilder code) {
 		code.append("\t\t" + ((first)? resType + " " : IInternalDebugCoreConstants.EMPTY_STRING) + resType + "Value = ((IJavaPrimitiveValue)value).get" + uResType + "Value();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong result : \", " + referenceExpression + ", " + resType+ "Value);\n");
 	}
 
-	public static void genCodeReturnValueCheckFloatDoubleType(String test, String resType, String uResType, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeReturnValueCheckFloatDoubleType(String test, String resType, String uResType, String referenceExpression, boolean first, StringBuilder code) {
 		code.append("\t\t" + ((first)? resType + " " : IInternalDebugCoreConstants.EMPTY_STRING) + resType + "Value = ((IJavaPrimitiveValue)value).get" + uResType + "Value();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong result : \", " + referenceExpression + ", " + resType+ "Value, 0);\n");
 	}
 
-	public static void genCodeReturnValueCheckStringType(String test, String referenceExpression, boolean first, StringBuffer code) {
+	public static void genCodeReturnValueCheckStringType(String test, String referenceExpression, boolean first, StringBuilder code) {
 		code.append("\t\t" + ((first)? "String " : IInternalDebugCoreConstants.EMPTY_STRING) + "stringValue = ((JDIObjectValue)value).getValueString();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong result : \", " + referenceExpression + ", " + "stringValue);\n");
 	}
 
-/*	public static void genCodeReturnValueCheckObjectType(String test, String referenceExpression, boolean first, StringBuffer code) {
+/*	public static void genCodeReturnValueCheckObjectType(String test, String referenceExpression, boolean first, StringBuilder code) {
 		code.append("\t\t" + ((first)? "Object " : IInternalDebugUIConstants.EMPTY_STRING) + "objectValue = ((JDIObjectValue)value).getValueString();\n" +
 					"\t\tassertEquals(\"" + test + " : wrong result : \" + " + "objectValue, " + "objectValue, " + referenceExpression + ");\n");
 	}*/
 
-	public static void genCodeSetTmp(String varName, int type, int op, String value, boolean init , StringBuffer code) {
+	public static void genCodeSetTmp(String varName, int type, int op, String value, boolean init , StringBuilder code) {
 		code.append("\t\t" + ((init)? fTypeName[type] + " " : IInternalDebugCoreConstants.EMPTY_STRING) + varName + " " + opSymbol[op] + " " + value + ";\n");
 	}
 
 
-	public static void tryBlockBegin(StringBuffer code) {
+	public static void tryBlockBegin(StringBuilder code) {
 		code.append("\t\ttry {\n\t\tinit();\n");
 	}
 
-	public static void tryBlockEnd(StringBuffer code) {
+	public static void tryBlockEnd(StringBuilder code) {
 		code.append("\t\t} finally {\n\t\tend();\n\t\t}\n");
 	}
 
 	//------------------------------
 
-	public static void createJavaFile(String className, String testClass, int breakPointLine, int frameNumber, boolean importJDIObjectValue, StringBuffer tests) throws Exception {
+	public static void createJavaFile(String className, String testClass, int breakPointLine, int frameNumber, boolean importJDIObjectValue, StringBuilder tests) throws Exception {
 		createJavaFile(className, testClass, breakPointLine, frameNumber, importJDIObjectValue, true, tests);
 	}
 
-	public static void createJavaFile(String className, String testClass, int breakPointLine, int frameNumber, boolean importJDIObjectValue, boolean importIJavaPrimitiveValue, StringBuffer tests) throws Exception {
+	public static void createJavaFile(String className, String testClass, int breakPointLine, int frameNumber, boolean importJDIObjectValue, boolean importIJavaPrimitiveValue, StringBuilder tests) throws Exception {
 
-		StringBuffer code = new StringBuffer();
+		StringBuilder code = new StringBuilder();
 
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java
index aa38e5a..26471e6 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/eval/generator/TypeHierarchyTestsGenerator.java
@@ -84,7 +84,7 @@
 	}
 
 	public static void  gen_main() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTestQualifier(IAA, M1, code);
 		createTestQualifier(IAB, M1, code);
@@ -150,7 +150,7 @@
 	}
 
 	public static void gen_aa_testA() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestA(code, AA);
 
@@ -158,7 +158,7 @@
 	}
 
 	public static void gen_ab_testA() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestA(code, AB);
 
@@ -166,7 +166,7 @@
 	}
 
 	public static void gen_ac_testA() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestA(code, AC);
 
@@ -174,7 +174,7 @@
 	}
 
 	public static void gen_bb_testA() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestA(code, BB);
 
@@ -182,7 +182,7 @@
 	}
 
 	public static void gen_bc_testA() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestA(code, BC);
 
@@ -190,7 +190,7 @@
 	}
 
 	public static void gen_cc_testA() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestA(code, CC);
 
@@ -198,7 +198,7 @@
 	}
 
 	public static void gen_bb_testB() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestB(code, BB);
 
@@ -206,7 +206,7 @@
 	}
 
 	public static void gen_bc_testB() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestB(code, BC);
 
@@ -214,7 +214,7 @@
 	}
 
 	public static void gen_cc_testB() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestB(code, CC);
 
@@ -222,7 +222,7 @@
 	}
 
 	public static void gen_cc_testC() throws Exception {
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		createTest_TestC(code, CC);
 
@@ -231,13 +231,13 @@
 
 	//-------------
 
-	public static void createTest_TestA(StringBuffer code, int qualifier) {
+	public static void createTest_TestA(StringBuilder code, int qualifier) {
 		createTest(instanceLevel[qualifier], M1, code);
 		createTest(instanceLevel[qualifier], M2, code);
 		createTest(0, S2, code);
 	}
 
-	public static void createTest_TestB(StringBuffer code, int qualifier) {
+	public static void createTest_TestB(StringBuilder code, int qualifier) {
 		createTest(instanceLevel[qualifier], M1, code);
 		createTest(instanceLevel[qualifier], M2, code);
 		createTest(1, S2, code);
@@ -248,7 +248,7 @@
 		createTestQualifier(SUPER_A, M2, code);
 	}
 
-	public static void createTest_TestC(StringBuffer code, int qualifier) {
+	public static void createTest_TestC(StringBuilder code, int qualifier) {
 		createTest(instanceLevel[qualifier], M1, code);
 		createTest(instanceLevel[qualifier], M2, code);
 		createTest(2, S2, code);
@@ -266,7 +266,7 @@
 
 	//-------------
 
-	public static void createTest(int level, int method, StringBuffer code) {
+	public static void createTest(int level, int method, StringBuilder code) {
 		String strMethod= methods[method];
 		code.append("\tpublic void testEvalNestedTypeTest_" + strMethod + "() throws Throwable {\n");
 		tryBlockBegin(code);
@@ -280,7 +280,7 @@
 	}
 
 
-	public static void createTestQualifier(int qualifier, int method, StringBuffer code) {
+	public static void createTestQualifier(int qualifier, int method, StringBuilder code) {
 		String strQualifier= qualifiers[qualifier];
 		String nameQualifier= strQualifier.replace('(', '_').replace(')', '_').replace(' ', '_');
 		String strMethod= methods[method];
@@ -299,9 +299,9 @@
 	//------------
 
 
-	public static void createJavaFile(StringBuffer tests, int lineNumber, int numberFrames, int hitCount) throws Exception {
+	public static void createJavaFile(StringBuilder tests, int lineNumber, int numberFrames, int hitCount) throws Exception {
 
-		StringBuffer code= new StringBuffer();
+		StringBuilder code= new StringBuilder();
 
 		code.append("/*******************************************************************************\n");
 		code.append(" * Copyright (c) 2002, 2003 IBM Corporation and others.\n");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
index de033d5..644580c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/launching/ProjectClasspathVariableTests.java
@@ -98,7 +98,7 @@
 		IProject project = get14Project().getProject();
 		setSelection(project);
 		String cp = manager.performStringSubstitution("${project_classpath}");
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		// expecting default output location and A.jar
 		buffer.append(ResourcesPlugin.getWorkspace().getRoot().getFolder(get14Project().getOutputLocation()).getLocation().toOSString());
 		buffer.append(File.pathSeparatorChar);
@@ -125,7 +125,7 @@
 		IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
 		String projectName = get14Project().getElementName();
 		String cp = manager.performStringSubstitution("${project_classpath:" + projectName + "}");
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		// expecting default output location and A.jar
 		buffer.append(ResourcesPlugin.getWorkspace().getRoot().getFolder(get14Project().getOutputLocation()).getLocation().toOSString());
 		buffer.append(File.pathSeparatorChar);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java
index 1d52314..0ee727e 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfDebugBaselineTest.java
@@ -28,7 +28,7 @@
     public void testBaseline() {
         tagAsSummary("Baseline Test", Dimension.ELAPSED_PROCESS);
         Performance perf = Performance.getDefault();
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
         for (int i = 0; i < 10000; i++) {
             buffer.append("at org.eclipse.jdt.internal.debug.core.model.JDILocalVariable.retrieveValue(JDILocalVariable.java:56\n");
         }
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java
index 737ce34..b8fe58d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java
@@ -145,7 +145,7 @@
 	private void setupTypeTest(String typeName) throws CoreException {
 		IPackageFragment pack= fSourceFolder.createPackageFragment("p", false, null);
 		((IContainer)pack.getUnderlyingResource()).setDefaultCharset("UTF-8", null);
-		StringBuffer buf= new StringBuffer();
+		StringBuilder buf= new StringBuilder();
 		buf.append("package p;\n");
 		buf.append("public class " + typeName + " {\n");
 		buf.append("	void getMatching$Pattern(){\n");
@@ -302,7 +302,7 @@
 	// method tests
 	private void setupMethodTest() throws JavaModelException {
 		IPackageFragment pack= fSourceFolder.createPackageFragment("p", false, null);
-		StringBuffer buf= new StringBuffer();
+		StringBuilder buf= new StringBuilder();
 		buf.append("package p;\n");
 		buf.append("public class OpenFromClipboardTests {\n");
 		buf.append("	private void invokeOpenFromClipboardCommand() {\n");
@@ -385,7 +385,7 @@
 
 	private void setupMethodWithDollarSignTest() throws JavaModelException {
 		IPackageFragment pack = fSourceFolder.createPackageFragment("p", false, null);
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append("package p;\n");
 		buf.append("public class OpenFromClipboard$Tests {\n");
 		buf.append("	private void invokeOpenFromClipboardCommand() {\n");
@@ -434,7 +434,7 @@
 	// member tests
 	private void setupMemberTest() throws JavaModelException {
 		IPackageFragment pack = fSourceFolder.createPackageFragment("p", false, null);
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append("package p;\n");
 		buf.append("public class OpenFromClipboardTests {\n");
 		buf.append("	private void invokeOpenFromClipboardCommand(String s) {\n");
@@ -500,7 +500,7 @@
 
 	private void setupQualifiedNameWithDollarSignTest() throws JavaModelException {
 		IPackageFragment pack = fSourceFolder.createPackageFragment("p", false, null);
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append("package p;\n");
 		buf.append("public class OpenFromClipboard$Tests {\n");
 		buf.append("	private void invokeOpenFromClipboardCommand() {\n");
@@ -547,7 +547,7 @@
 	// stack element tests
 	private void setupStackElementTest() throws JavaModelException {
 		IPackageFragment pack = fSourceFolder.createPackageFragment("p", false, null);
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append("package p;\n");
 		buf.append("public class OpenFromClipboardTests {\n");
 		buf.append("	private void invokeOpenFromClipboardCommand(char ch) {\n");
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java
index bd5d010..d2469fb 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ViewManagementTests.java
@@ -258,13 +258,13 @@
 	}
 
 	protected String buildRemainingEventsMessage() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		partsMessage("Parts did not open: ", fExpectingOpenEvents, buffer);
 		partsMessage("Parts did not close: ", fExpectingCloseEvents, buffer);
 		return buffer.toString();
 	}
 
-	private void partsMessage(String header, List<String> partIds, StringBuffer buffer) {
+	private void partsMessage(String header, List<String> partIds, StringBuilder buffer) {
 		String[] ids = partIds.toArray(new String[partIds.size()]);
 		if (ids.length > 0) {
 			buffer.append(header);
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java
index e31a48a..f35f589 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/variables/DetailFormatterTests.java
@@ -78,7 +78,7 @@
 			createLineBreakpoint(10, typename);
 			thread = launchToBreakpoint(typename);
 			assertNotNull("The program did not suspend", thread);
-			String snippet = "StringBuffer buf = new StringBuffer();\n"
+			String snippet = "StringBuilder buf = new StringBuilder();\n"
 					+ "buf.append(\"{\");\n"
 					+ "Iterator i = this.entrySet().iterator();\n"
 					+ "boolean hasNext = i.hasNext();\n"
@@ -129,7 +129,7 @@
 			createLineBreakpoint(10, typename);
 			thread = launchToBreakpoint(typename);
 			assertNotNull("The program did not suspend", thread);
-			String snippet = "StringBuffer buf = new StringBuffer();\n"
+			String snippet = "StringBuilder buf = new StringBuilder();\n"
 					+ "buf.append(this);\n"
 					+ "return buf.toString();";
 			formatter = new DetailFormatter("java.util.HashMap", snippet, true);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java
index f6b0a52..522755e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/JavaUISourceLocator.java
@@ -283,7 +283,7 @@
 		String handle = fJavaProject.getHandleIdentifier();
 		String findAll = Boolean.valueOf(isFindAllSourceElements()).toString();
 
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("<project>"); //$NON-NLS-1$
 		buffer.append(handle);
 		buffer.append("</project>"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java
index 0135a65..46175ab 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/breakpoints/JavaBreakpointConditionEditor.java
@@ -780,13 +780,13 @@
 
 		gc.dispose();
 
-		StringBuffer dashes= new StringBuffer();
+		StringBuilder dashes= new StringBuilder();
 		int chars= (((width - fMessageLength) / fSeparatorWidth) / 2) - 2;
 		for (int i= 0; i < chars; i++) {
 			dashes.append('-');
 		}
 
-		StringBuffer result= new StringBuffer();
+		StringBuilder result= new StringBuilder();
 		result.append(dashes);
 		result.append(" " + separatorLabel + " "); //$NON-NLS-1$//$NON-NLS-2$
 		result.append(dashes);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
index 0c73fed..8573e9d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/debug/ui/launchConfigurations/JavaConnectTab.java
@@ -364,7 +364,7 @@
 			if (editor instanceof StringFieldEditor) {
 				String value = ((StringFieldEditor)editor).getStringValue();
 				if (!arg.isValid(value)) {
-					StringBuffer label = new StringBuffer(LegacyActionTools.removeMnemonics(arg.label()));
+					StringBuilder label = new StringBuilder(LegacyActionTools.removeMnemonics(arg.label()));
 					if (label.lastIndexOf(ConnectMessages.SocketConnectionLabelSeparator) == label.length() - 1) {
 						label = label.deleteCharAt(label.length() - 1);
 					}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
index 5750161..a60e1e6 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
@@ -219,7 +219,7 @@
 			if (item instanceof IJavaVariable) {
 				return getVariableText((IJavaVariable) item);
 			} else if (item instanceof IStackFrame) {
-				StringBuffer label= new StringBuffer(getStackFrameText((IStackFrame) item));
+				StringBuilder label= new StringBuilder(getStackFrameText((IStackFrame) item));
 				if (item instanceof IJavaStackFrame) {
 					if (((IJavaStackFrame)item).isOutOfSynch()) {
 						label.append(DebugUIMessages.JDIModelPresentation___out_of_synch__1);
@@ -249,7 +249,7 @@
 			} else if (item instanceof NoMonitorInformationElement) {
                 return DebugUIMessages.JDIModelPresentation_5;
             } else {
-				StringBuffer label= new StringBuffer();
+				StringBuilder label= new StringBuilder();
 				if (item instanceof IJavaThread) {
 					label.append(getThreadText((IJavaThread) item, showQualified));
 					if (((IJavaThread)item).isOutOfSynch()) {
@@ -313,7 +313,7 @@
 	 * Build the text for an IJavaThread.
 	 */
 	protected String getThreadText(IJavaThread thread, boolean qualified) throws CoreException {
-		StringBuffer key = new StringBuffer("thread_"); //$NON-NLS-1$
+		StringBuilder key = new StringBuilder("thread_"); //$NON-NLS-1$
 		String[] args = null;
 		IBreakpoint[] breakpoints= thread.getBreakpoints();
 		if (thread.isDaemon()) {
@@ -461,7 +461,7 @@
 		}
 		boolean isObject= isObjectValue(signature);
 		boolean isArray= value instanceof IJavaArray;
-		StringBuffer buffer= new StringBuffer();
+		StringBuilder buffer= new StringBuilder();
 		if(isUnknown(signature)) {
 			buffer.append(signature);
 		} else if (isObject && !isString && (refTypeName.length() > 0)) {
@@ -507,7 +507,7 @@
 		return buffer.toString().trim();
 	}
 
-	private StringBuffer appendUnsignedText(IJavaValue value, StringBuffer buffer) throws DebugException {
+	private StringBuilder appendUnsignedText(IJavaValue value, StringBuilder buffer) throws DebugException {
 		String unsignedText= getValueUnsignedText(value);
 		if (unsignedText != null) {
 			buffer.append(" ["); //$NON-NLS-1$
@@ -517,7 +517,7 @@
 		return buffer;
 	}
 
-	protected StringBuffer appendHexText(IJavaValue value, StringBuffer buffer) throws DebugException {
+	protected StringBuilder appendHexText(IJavaValue value, StringBuilder buffer) throws DebugException {
 		String hexText = getValueHexText(value);
 		if (hexText != null) {
 			buffer.append(" ["); //$NON-NLS-1$
@@ -527,7 +527,7 @@
 		return buffer;
 	}
 
-	protected StringBuffer appendCharText(IJavaValue value, StringBuffer buffer) throws DebugException {
+	protected StringBuilder appendCharText(IJavaValue value, StringBuilder buffer) throws DebugException {
 		String charText= getValueCharText(value);
 		if (charText != null) {
 			buffer.append(" ["); //$NON-NLS-1$
@@ -634,7 +634,7 @@
 				return null;
 		}
 		char charValue= (char)longValue;
-		StringBuffer charText = new StringBuffer();
+		StringBuilder charText = new StringBuilder();
 		if (Character.getType(charValue) == Character.CONTROL) {
 			Character ctrl = new Character((char) (charValue + 64));
 			charText.append('^');
@@ -1276,7 +1276,7 @@
 		} catch (DebugException e1) {
 		}
 		boolean showTypes= isShowVariableTypeNames();
-		StringBuffer buff= new StringBuffer();
+		StringBuilder buff= new StringBuilder();
 		String typeName= DebugUIMessages.JDIModelPresentation_unknown_type__2;
 		try {
 			typeName= var.getReferenceTypeName();
@@ -1399,7 +1399,7 @@
 
 	protected String getExpressionText(IExpression expression) throws DebugException {
 		boolean showTypes= isShowVariableTypeNames();
-		StringBuffer buff= new StringBuffer();
+		StringBuilder buff= new StringBuilder();
 		IJavaValue javaValue= (IJavaValue) expression.getValue();
 		if (javaValue != null) {
 			String typeName=null;
@@ -1422,7 +1422,7 @@
 			}
 		}
 		// Edit the snippet to make it easily viewable in one line
-		StringBuffer snippetBuffer = new StringBuffer();
+		StringBuilder snippetBuffer = new StringBuilder();
 		String snippet = expression.getExpressionText().trim();
 		snippetBuffer.append('"');
 		if (snippet.length() > 30){
@@ -1459,7 +1459,7 @@
 		if (firstBracket < 0) {
 			return typeName;
 		}
-		StringBuffer buffer= new StringBuffer(typeName);
+		StringBuilder buffer= new StringBuilder(typeName);
 		buffer.insert(firstBracket + 1, Integer.toString(arrayIndex));
 		return buffer.toString();
 	}
@@ -1493,7 +1493,7 @@
 			return null;
 		}
 
-		StringBuffer buff= new StringBuffer();
+		StringBuilder buff= new StringBuilder();
 		long longValue;
 		char sigValue = sig.charAt(0);
 		try {
@@ -1572,7 +1572,7 @@
 			if (suffix == null) {
 				return label;
 			}
-			StringBuffer buffer = new StringBuffer(label);
+			StringBuilder buffer = new StringBuilder(label);
 			buffer.append(suffix);
 			return buffer.toString();
 	    } catch (CoreException e) {
@@ -1603,7 +1603,7 @@
 		        }
 		    }
 		}
-		StringBuffer label= new StringBuffer(sourceName);
+		StringBuilder label= new StringBuilder(sourceName);
 		appendLineNumber(breakpoint, label);
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint,label);
@@ -1618,7 +1618,7 @@
 	}
 
 	protected String getExceptionBreakpointText(IJavaExceptionBreakpoint breakpoint) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		String typeName = breakpoint.getTypeName();
 		if (typeName != null) {
 			buffer.append(getQualifiedName(typeName));
@@ -1657,7 +1657,7 @@
 	protected String getLineBreakpointText(IJavaLineBreakpoint breakpoint) throws CoreException {
 		String typeName= breakpoint.getTypeName();
 		IMember member= BreakpointUtils.getMember(breakpoint);
-		StringBuffer label= new StringBuffer();
+		StringBuilder label= new StringBuilder();
 		if (typeName != null) {
 			label.append(getQualifiedName(typeName));
 		}
@@ -1678,7 +1678,7 @@
 
 	protected String getClassPrepareBreakpointText(IJavaClassPrepareBreakpoint breakpoint) throws CoreException {
 		String typeName= breakpoint.getTypeName();
-		StringBuffer label = new StringBuffer();
+		StringBuilder label = new StringBuilder();
 		if (typeName != null) {
 			label.append(getQualifiedName(typeName));
 		}
@@ -1687,7 +1687,7 @@
 		return label.toString();
 	}
 
-	protected StringBuffer appendLineNumber(IJavaLineBreakpoint breakpoint, StringBuffer label) throws CoreException {
+	protected StringBuilder appendLineNumber(IJavaLineBreakpoint breakpoint, StringBuilder label) throws CoreException {
 		int lineNumber= breakpoint.getLineNumber();
 		if (lineNumber > 0) {
 			label.append(" ["); //$NON-NLS-1$
@@ -1700,7 +1700,7 @@
 		return label;
 	}
 
-	protected StringBuffer appendHitCount(IJavaBreakpoint breakpoint, StringBuffer label) throws CoreException {
+	protected StringBuilder appendHitCount(IJavaBreakpoint breakpoint, StringBuilder label) throws CoreException {
 		int hitCount= breakpoint.getHitCount();
 		if (hitCount > 0) {
 			label.append(" ["); //$NON-NLS-1$
@@ -1715,7 +1715,7 @@
 	protected String getJavaPatternBreakpointText(@SuppressWarnings("deprecation") IJavaPatternBreakpoint breakpoint) throws CoreException {
 		IResource resource= breakpoint.getMarker().getResource();
 		IMember member= BreakpointUtils.getMember(breakpoint);
-		StringBuffer label= new StringBuffer(resource.getName());
+		StringBuilder label= new StringBuilder(resource.getName());
 		appendLineNumber(breakpoint, label);
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint,label);
@@ -1731,7 +1731,7 @@
 
 	protected String getJavaTargetPatternBreakpointText(IJavaTargetPatternBreakpoint breakpoint) throws CoreException {
 		IMember member= BreakpointUtils.getMember(breakpoint);
-		StringBuffer label= new StringBuffer(breakpoint.getSourceName());
+		StringBuilder label= new StringBuilder(breakpoint.getSourceName());
 		appendLineNumber(breakpoint, label);
 		appendHitCount(breakpoint, label);
 		appendSuspendPolicy(breakpoint,label);
@@ -1748,7 +1748,7 @@
 	protected String getWatchpointText(IJavaWatchpoint watchpoint) throws CoreException {
 		String typeName= watchpoint.getTypeName();
 		IMember member= BreakpointUtils.getMember(watchpoint);
-		StringBuffer label= new StringBuffer();
+		StringBuilder label= new StringBuilder();
 		if (typeName != null) {
 			label.append(getQualifiedName(typeName));
 		}
@@ -1780,7 +1780,7 @@
 	protected String getMethodBreakpointText(IJavaMethodBreakpoint methodBreakpoint) throws CoreException {
 		String typeName= methodBreakpoint.getTypeName();
 		IMember member= BreakpointUtils.getMember(methodBreakpoint);
-		StringBuffer label= new StringBuffer();
+		StringBuilder label= new StringBuilder();
 		if (typeName != null) {
 			label.append(getQualifiedName(typeName));
 		}
@@ -1821,7 +1821,7 @@
 	protected String getStackFrameText(IStackFrame stackFrame) throws DebugException {
 		IJavaStackFrame frame= stackFrame.getAdapter(IJavaStackFrame.class);
 		if (frame != null) {
-			StringBuffer label= new StringBuffer();
+			StringBuilder label= new StringBuilder();
 
 			String dec= DebugUIMessages.JDIModelPresentation_unknown_declaring_type__4;
 			try {
@@ -1946,7 +1946,7 @@
 		}
 		// get the list of the parameters and generates their simple name
 		List<String> parameters= getNameList(qualifiedName.substring(parameterStart + 1, qualifiedName.length() - 1));
-		StringBuffer name= new StringBuffer(getSimpleName(qualifiedName.substring(0, parameterStart)));
+		StringBuilder name= new StringBuilder(getSimpleName(qualifiedName.substring(0, parameterStart)));
 		name.append('<');
 		Iterator<String> iterator= parameters.iterator();
 		if (iterator.hasNext()) {
@@ -2019,28 +2019,28 @@
 		public void computeDetail(IValue value, IJavaThread thread, IValueDetailListener listener) throws DebugException;
 	}
 
-	protected void appendSuspendPolicy(IJavaBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
+	protected void appendSuspendPolicy(IJavaBreakpoint breakpoint, StringBuilder buffer) throws CoreException {
 		if (breakpoint.getSuspendPolicy() == IJavaBreakpoint.SUSPEND_VM) {
 			buffer.append(' ');
 			buffer.append(DebugUIMessages.JDIModelPresentation_Suspend_VM);
 		}
 	}
 
-	protected void appendThreadFilter(IJavaBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
+	protected void appendThreadFilter(IJavaBreakpoint breakpoint, StringBuilder buffer) throws CoreException {
 		if (breakpoint.getThreadFilters().length != 0) {
 			buffer.append(' ');
 			buffer.append(DebugUIMessages.JDIModelPresentation_thread_filtered);
 		}
 	}
 
-	protected void appendConditional(IJavaLineBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
+	protected void appendConditional(IJavaLineBreakpoint breakpoint, StringBuilder buffer) throws CoreException {
 		if (breakpoint.isConditionEnabled() && breakpoint.getCondition() != null) {
 			buffer.append(' ');
 			buffer.append(DebugUIMessages.JDIModelPresentation__conditional__2);
 		}
 	}
 
-	protected void appendInstanceFilter(IJavaBreakpoint breakpoint, StringBuffer buffer) throws CoreException {
+	protected void appendInstanceFilter(IJavaBreakpoint breakpoint, StringBuilder buffer) throws CoreException {
 		IJavaObject[] instances = breakpoint.getInstanceFilters();
 		for (int i = 0; i < instances.length; i++) {
 			String instanceText= instances[i].getValueString();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java
index 8a0790a..a7339be 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaBreakpointWorkbenchAdapterFactory.java
@@ -57,7 +57,7 @@
 					return null;
 				}
 				IJavaBreakpoint breakpoint = (IJavaBreakpoint) o;
-				StringBuffer label = new StringBuffer();
+				StringBuilder label = new StringBuilder();
 				try {
 					String type= breakpoint.getTypeName();
 					if (type != null) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java
index 236d726..6b073d2 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugHover.java
@@ -153,7 +153,7 @@
 	 * Returns HTML text for the given variable
 	 */
 	private static String getVariableText(IVariable variable) {
-	    StringBuffer buffer= new StringBuffer();
+	    StringBuilder buffer= new StringBuilder();
 		JDIModelPresentation modelPresentation = getModelPresentation();
 		buffer.append("<p><pre>"); //$NON-NLS-1$
 		String variableText= modelPresentation.getVariableText((IJavaVariable) variable);
@@ -172,7 +172,7 @@
 	 * values containing reserved characters are correctly displayed.
      */
     private static String replaceHTMLChars(String variableText) {
-        StringBuffer buffer= new StringBuffer(variableText.length());
+        StringBuilder buffer= new StringBuilder(variableText.length());
         char[] characters = variableText.toCharArray();
         for (int i = 0; i < characters.length; i++) {
             char character= characters[i];
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
index eea88e1..92e16cd 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugOptionsManager.java
@@ -461,7 +461,7 @@
 		if (list == null) {

 			return ""; //$NON-NLS-1$

 		}

-		StringBuffer buffer = new StringBuffer();

+		StringBuilder buffer = new StringBuilder();

 		for (int i = 0; i < list.length; i++) {

 			if (i > 0) {

 				buffer.append(',');

@@ -628,7 +628,7 @@
 	 */

 	@Override

 	public void breakpointHasCompilationErrors(final IJavaLineBreakpoint breakpoint, final Message[] errors) {

-		StringBuffer message= new StringBuffer();

+		StringBuilder message= new StringBuilder();

 		Message error;

 		for (int i=0, numErrors= errors.length; i < numErrors; i++) {

 			error= errors[i];

diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java
index 1832c18..1fe1f98 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDetailFormattersManager.java
@@ -416,7 +416,7 @@
 			if (maxLength > 0){
 				int maxEntries = (maxLength / 3) + 1;
 				if (length > maxEntries) {
-					StringBuffer snippet = new StringBuffer();
+					StringBuilder snippet = new StringBuilder();
 					snippet.append("Object[] shorter = new Object["); //$NON-NLS-1$
 					snippet.append(maxEntries);
 					snippet.append("]; System.arraycopy(this, 0, shorter, 0, "); //$NON-NLS-1$
@@ -599,7 +599,7 @@
 		@Override
 		public void evaluationComplete(IEvaluationResult result) {
 			if (result.hasErrors()) {
-				StringBuffer error= new StringBuffer(DebugUIMessages.JavaDetailFormattersManager_Detail_formatter_error___1);
+				StringBuilder error= new StringBuilder(DebugUIMessages.JavaDetailFormattersManager_Detail_formatter_error___1);
 				DebugException exception= result.getException();
 				if (exception != null) {
 					Throwable throwable= exception.getStatus().getException();
@@ -607,7 +607,7 @@
 					if (throwable instanceof InvocationException) {
 						error.append(NLS.bind(DebugUIMessages.JavaDetailFormattersManager_An_exception_occurred___0__3, new String[] {((InvocationException) throwable).exception().referenceType().name()}));
 					} else if (throwable instanceof UnsupportedOperationException) {
-						error = new StringBuffer();
+						error = new StringBuilder();
 						error.append(DebugUIMessages.JavaDetailFormattersManager_7);
 					} else {
 						error.append(exception.getStatus().getMessage());
@@ -630,22 +630,22 @@
 
 		public void valueToString(final IJavaValue objectValue) throws DebugException {
 			String nonEvalResult = null;
-			StringBuffer result= null;
+			StringBuilder result= null;
 			if (objectValue.getSignature() == null) {
 				// no need to spawn evaluate for a null fValue
 				nonEvalResult = DebugUIMessages.JavaDetailFormattersManager_null;
 			} else if (objectValue instanceof IJavaPrimitiveValue) {
 				// no need to spawn evaluate for a primitive value
-				result = new StringBuffer();
+				result = new StringBuilder();
 				appendJDIPrimitiveValueString(result, objectValue);
 			} else if (fThread == null || !fThread.isSuspended()) {
 				// no thread available
-				result = new StringBuffer();
+				result = new StringBuilder();
 				result.append(DebugUIMessages.JavaDetailFormattersManager_no_suspended_threads);
 				appendJDIValueString(result, objectValue);
 			} else if (objectValue instanceof IJavaObject && STRING_SIGNATURE.equals(objectValue.getSignature())) {
 				// no need to spawn evaluate for a java.lang.String
-				result = new StringBuffer();
+				result = new StringBuilder();
 				appendJDIValueString(result, objectValue);
 			}
 			if (result != null) {
@@ -659,7 +659,7 @@
 			IEvaluationRunnable eval = new IEvaluationRunnable() {
 				@Override
 				public void run(IJavaThread thread, IProgressMonitor monitor) throws DebugException {
-					StringBuffer buf= new StringBuffer();
+					StringBuilder buf= new StringBuilder();
 					if (objectValue instanceof IJavaArray) {
 						appendArrayDetail(buf, (IJavaArray) objectValue);
 					} else if (objectValue instanceof IJavaObject) {
@@ -679,7 +679,7 @@
 		 * Arrays.asList().toString() to minimize toString() calls on remote target (i.e. one call to
 		 * List.toString() instead of one call per item in the array).
 		 */
-		protected void appendArrayDetail(StringBuffer result, IJavaArray arrayValue) throws DebugException {
+		protected void appendArrayDetail(StringBuilder result, IJavaArray arrayValue) throws DebugException {
 			result.append('[');
 			boolean partial = false;
 			IJavaValue[] arrayValues = null;
@@ -726,17 +726,17 @@
 			}
 		}
 
-		protected void appendJDIPrimitiveValueString(StringBuffer result, IJavaValue value) throws DebugException {
+		protected void appendJDIPrimitiveValueString(StringBuilder result, IJavaValue value) throws DebugException {
 			result.append(value.getValueString());
 		}
 
 
-		protected void appendJDIValueString(StringBuffer result, IJavaValue value) throws DebugException {
+		protected void appendJDIValueString(StringBuilder result, IJavaValue value) throws DebugException {
 			result.append(value.getValueString());
 		}
 
 
-		protected void appendObjectDetail(StringBuffer result, IJavaObject objectValue) throws DebugException {
+		protected void appendObjectDetail(StringBuilder result, IJavaObject objectValue) throws DebugException {
 			if(objectValue instanceof JDINullValue) {
 				appendJDIValueString(result, objectValue);
 				return;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java
index 07c859d..bb4e4cb 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaLogicalStructuresPreferencePage.java
@@ -68,7 +68,7 @@
         @Override
 		public String getColumnText(Object element, int columnIndex) {
             JavaLogicalStructure logicalStructure= (JavaLogicalStructure) element;
-            StringBuffer buffer= new StringBuffer();
+            StringBuilder buffer= new StringBuilder();
             if (columnIndex == 0) {
                 String qualifiedName= logicalStructure.getQualifiedTypeName();
                 int index= qualifiedName.lastIndexOf('.') + 1;
@@ -401,7 +401,7 @@
 	 * @param structure the logical structure that was modified
 	 */
 	private void refreshCodeViewer(JavaLogicalStructure structure){
-		StringBuffer buffer= new StringBuffer();
+		StringBuilder buffer= new StringBuilder();
 	    if (structure != null){
 	    	String snippet= structure.getValue();
 	    	if (snippet != null) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java
index 961d53d..fe40a33 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ControlAccessibleListener.java
@@ -29,7 +29,7 @@
 	public static void addListener(Control comp, String name) {
 		//strip mnemonic
 		String[] strs = name.split("&"); //$NON-NLS-1$
-		StringBuffer stripped = new StringBuffer();
+		StringBuilder stripped = new StringBuilder();
 		for (int i = 0; i < strs.length; i++) {
 			stripped.append(strs[i]);
 		}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
index 7e1f022..a191c14 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/EvaluateAction.java
@@ -521,7 +521,7 @@
 	}
 
 	private String format(String message) {
-		StringBuffer result= new StringBuffer();
+		StringBuilder result= new StringBuilder();
 		int index= 0, pos;
 		while ((pos= message.indexOf('\n', index)) != -1) {
 			result.append("\t\t").append(message.substring(index, index= pos + 1)); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java
index 6fd12d1..7308481 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ExpressionInputDialog.java
@@ -251,7 +251,7 @@
                 IValue value = variable.getValue();
                 if (!(value instanceof JDINullValue)) {
                     String currentValue= value.getValueString();
-                    StringBuffer buffer= new StringBuffer(currentValue.length());
+                    StringBuilder buffer= new StringBuilder(currentValue.length());
                     buffer.append('"'); // Surround value in quotes
                     char[] chars = currentValue.toCharArray();
                     for (int i = 0; i < chars.length; i++) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java
index 8fb2309..b0b582d 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/JavaObjectValueEditor.java
@@ -181,7 +181,7 @@
     			}
     			if (result.hasErrors()) {
     			    DebugException exception = result.getException();
-    			    StringBuffer buffer = new StringBuffer();
+    			    StringBuilder buffer = new StringBuilder();
     			    if (exception == null) {
         			    String[] messages = result.getErrorMessages();
         			    for (int i = 0; i < messages.length; i++) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
index 8bbba84..f8dba72 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
@@ -610,7 +610,7 @@
      * @since 3.4
      */
 	private static String pruneAnonymous(IType type) {
-    	StringBuffer buffer = new StringBuffer();
+    	StringBuilder buffer = new StringBuilder();
     	IJavaElement parent = type;
     	while(parent != null) {
     		if(parent.getElementType() == IJavaElement.TYPE){
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java
index 87267b8..f411e96 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaLikeExtensionsResolver.java
@@ -25,7 +25,7 @@
 	@Override
 	public String resolveValue(IDynamicVariable variable, String argument) throws CoreException {
 		String[] javaLikeExtensions = JavaCore.getJavaLikeExtensions();
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		if (javaLikeExtensions.length > 1) {
 			buffer.append("("); //$NON-NLS-1$
 		}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
index 64b8b65..e437491 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/console/JavaStackTraceConsole.java
@@ -210,7 +210,7 @@
      */
     private String format(String trace) {
         StringTokenizer tokenizer = new StringTokenizer(trace, " \t\n\r\f", true); //$NON-NLS-1$
-        StringBuffer formattedTrace = new StringBuffer();
+        StringBuilder formattedTrace = new StringBuilder();
 
         boolean insideAt = false;
         boolean newLine = true;
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java
index c67cdc3..8f295ec 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/InstalledJREsBlock.java
@@ -1135,7 +1135,7 @@
 	}
 
 
-	private StringBuffer appendVMAttributes(IVMInstall vmInstall, StringBuffer buf) {
+	private StringBuilder appendVMAttributes(IVMInstall vmInstall, StringBuilder buf) {
 		if (vmInstall != null) {
 			String str = vmInstall.getName();
 			buf.append('[').append(str.length()).append(']').append(str);
@@ -1157,7 +1157,7 @@
 	}
 
 	private String getEncodedVMInstalls() {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		IVMInstall vmInstall = getCheckedJRE();
 
 		int nElements = fVMs.size();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java
index 2ea3ed8..e47b06e 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/LibraryLabelProvider.java
@@ -87,7 +87,7 @@
 			return ((LibraryStandin)element).getSystemLibraryPath().toOSString();
 		} else if (element instanceof SubElement) {
 			SubElement subElement= (SubElement) element;
-			StringBuffer text= new StringBuffer();
+			StringBuilder text= new StringBuilder();
 			if (subElement.getType() == SubElement.SOURCE_PATH) {
 				text.append(JREMessages.VMLibraryBlock_0);
 				IPath systemLibrarySourcePath= subElement.getParent().getSystemLibrarySourcePath();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
index 3b1c2b3..3203ed1 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/jres/VMDetailsDialog.java
@@ -83,7 +83,7 @@
 		} else {
 			String[] args = fVM.getVMArguments();
 			if (args != null) {
-				StringBuffer buf = new StringBuffer();
+				StringBuilder buf = new StringBuilder();
 				for (int i = 0; i < args.length; i++) {
 					buf.append(args[i]);
 					if (i < (args.length - 1)) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java
index f71cef4..562cced 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/launcher/RuntimeClasspathEntryLabelProvider.java
@@ -142,7 +142,7 @@
 					return NLS.bind(LauncherMessages.RuntimeClasspathEntryLabelProvider_Invalid_path, new String[]{path.toOSString()});
 				}
 				String[] segments = path.segments();
-				StringBuffer displayPath = new StringBuffer();
+				StringBuilder displayPath = new StringBuilder();
 				if (segments.length > 0) {
 					displayPath.append(segments[segments.length - 1]);
 					displayPath.append(" - "); //$NON-NLS-1$
@@ -161,7 +161,7 @@
 			case IRuntimeClasspathEntry.VARIABLE:
 				path = entry.getPath();
 				IPath srcPath = entry.getSourceAttachmentPath();
-				StringBuffer buf = new StringBuffer(path.toString());
+				StringBuilder buf = new StringBuilder(path.toString());
 				if (srcPath != null) {
 					buf.append(" ["); //$NON-NLS-1$
 					buf.append(srcPath.toString());
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java
index 5a589f2..2f1a348 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/JavaBreakpointPage.java
@@ -279,7 +279,7 @@
 		IJavaBreakpoint jb = getBreakpoint();
 		if (jb instanceof IJavaLineBreakpoint) {
 			IJavaLineBreakpoint breakpoint = (IJavaLineBreakpoint) jb;
-			StringBuffer lineNumber = new StringBuffer(4);
+			StringBuilder lineNumber = new StringBuilder(4);
 			try {
 				int lNumber = breakpoint.getLineNumber();
 				if (lNumber > 0) {
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java
index 1e30b8c..18d9682 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/propertypages/VMCapabilitiesPropertyPage.java
@@ -153,7 +153,7 @@
 	private void createHeadingLabel(Composite parent, VirtualMachineImpl vm) {
 		Composite comp = SWTFactory.createComposite(parent, parent.getFont(), 2, 2, GridData.HORIZONTAL_ALIGN_BEGINNING);
 		SWTFactory.createLabel(comp, PropertyPageMessages.VMCapabilitiesPropertyPage_1, fHeadingFont, 1);
-		StringBuffer buff = new StringBuffer(vm.name().trim());
+		StringBuilder buff = new StringBuilder(vm.name().trim());
 		buff = buff.append(" ").append(vm.version().trim()); //$NON-NLS-1$
 		Text text = SWTFactory.createText(comp, SWT.READ_ONLY, 1, buff.toString());
 		text.setBackground(parent.getBackground());
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java
index ffa683f..c07fd74 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/search/LaunchConfigurationQueryParticipant.java
@@ -147,7 +147,7 @@
 	 */
 	private String quotePattern(String pattern) {
 		StringTokenizer t = new StringTokenizer(pattern, ".?*$()", true); //$NON-NLS-1$
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		String token = null;
 		while (t.hasMoreTokens()) {
 			token = t.nextToken();
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
index dd9dd12..d8ee050 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/JavaSnippetEditor.java
@@ -767,7 +767,7 @@
 	}
 
 	protected void displayResult(IJavaValue result) {
-		StringBuffer resultString= new StringBuffer();
+		StringBuilder resultString= new StringBuilder();
 		try {
 			IJavaType type = result.getJavaType();
 			if (type != null) {
@@ -840,7 +840,7 @@
 		IDocument document = getSourceViewer().getDocument();
 		String delimiter = document.getLegalLineDelimiters()[0];
 
-		final StringBuffer errorString = new StringBuffer();
+		final StringBuilder errorString = new StringBuilder();
 		for (int i = 0; i < errors.length; i++) {
 			errorString.append(errors[i] + delimiter);
 		}
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java
index e56af53..6b45684 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/snippeteditor/ScrapbookLauncher.java
@@ -226,7 +226,7 @@
 				wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, "org.eclipse.jdt.debug.ui.scrapbookSourcepathProvider"); //$NON-NLS-1$
 			}
 
-			StringBuffer urlsString = new StringBuffer();
+			StringBuilder urlsString = new StringBuilder();
 			for (int i = 0; i < urls.length; i++) {
 				urlsString.append(' ');
 				urlsString.append(urls[i]);
@@ -350,7 +350,7 @@
 		// NOT File.separatorChar
 		String urlDelimiter= "/"; //$NON-NLS-1$
 		String unencoded= file.toURL().toExternalForm();
-		StringBuffer encoded= new StringBuffer();
+		StringBuilder encoded= new StringBuilder();
 		StringTokenizer tokenizer= new StringTokenizer(unencoded, urlDelimiter);
 
 		encoded.append(tokenizer.nextToken()); //file:
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java
index 93ada17..fcf8566 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/WorkbenchAdapter.java
@@ -91,7 +91,7 @@
 			IPackageFragmentRoot fragmentRoot = container.getPackageFragmentRoot();
 			IPath path = fragmentRoot.getPath();
 			if (path.segmentCount() > 0) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append(path.lastSegment());
 				if (path.segmentCount() > 1) {
 					buffer.append(" - "); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java
index 504623e..2335630 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaStackFrameMementoProvider.java
@@ -30,7 +30,7 @@
 	@Override
 	protected String getElementName(Object element, IPresentationContext context) throws CoreException {
 		if (element instanceof IJavaStackFrame) {
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
 			IJavaStackFrame frame = (IJavaStackFrame) element;
 			buf.append(frame.getDeclaringTypeName());
 			buf.append("#"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java
index e2e7a64..ea522a7 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableLabelProvider.java
@@ -142,7 +142,7 @@
 			if (value instanceof JDIObjectValue) {
 				long uniqueId = ((JDIObjectValue)value).getUniqueId();
 				if (uniqueId >= 0) {
-					StringBuffer buffer = new StringBuffer();
+					StringBuilder buffer = new StringBuilder();
 					buffer.append(uniqueId);
 					return buffer.toString();
 				}
@@ -161,7 +161,7 @@
 						if (count == -1) {
 							return DebugUIMessages.JavaVariableLabelProvider_0;
 						}
-						StringBuffer buffer = new StringBuffer();
+						StringBuilder buffer = new StringBuilder();
 						buffer.append(count);
 						return buffer.toString();
 					}
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
index 4c1cae6..63d13d5 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTEvaluationEngine.java
@@ -167,7 +167,7 @@
 	 */
 	private void traceCaller(String snippet, IThread thread) {
 		if (JDIDebugOptions.DEBUG_AST_EVAL_THREAD_TRACE) {
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
 			buf.append(JDIDebugOptions.FORMAT.format(new Date()));
 			buf.append(" : Evaluation Request Trace - Expression: "); //$NON-NLS-1$
 			buf.append(snippet);
@@ -417,7 +417,7 @@
 			String recTypeName = "java.lang.Object"; //$NON-NLS-1$
 			String typeName = arrayType.getName();
 			if (componentType instanceof IJavaReferenceType) {
-				StringBuffer buf = new StringBuffer();
+				StringBuilder buf = new StringBuilder();
 				buf.append("java.lang.Object"); //$NON-NLS-1$
 				for (int i = 0; i < dimension; i++) {
 					buf.append("[]"); //$NON-NLS-1$
@@ -638,7 +638,7 @@
 		@Override
 		public void run() {
 			if (JDIDebugOptions.DEBUG_AST_EVAL) {
-				StringBuffer buf = new StringBuffer();
+				StringBuilder buf = new StringBuilder();
 				buf.append(JDIDebugOptions.FORMAT.format(new Date()));
 				buf.append(" : AST Evaluation"); //$NON-NLS-1$
 				buf.append("\n\tExpression: "); //$NON-NLS-1$
@@ -673,7 +673,7 @@
 				}
 				evaluationFinished(result);
 				if (JDIDebugOptions.DEBUG_AST_EVAL) {
-					StringBuffer buf = new StringBuffer();
+					StringBuilder buf = new StringBuilder();
 					buf.append("\tErrors: "); //$NON-NLS-1$
 					for (int i = 0; i < errors.length; i++) {
 						if (i > 0) {
@@ -768,7 +768,7 @@
 			result.setTerminated(er.fTerminated);
 			if (exception != null) {
 				if (JDIDebugOptions.DEBUG_AST_EVAL) {
-					StringBuffer buf = new StringBuffer();
+					StringBuilder buf = new StringBuilder();
 					buf.append("\tException: "); //$NON-NLS-1$
 					buf.append(exception.toString());
 					JDIDebugOptions.trace(buf.toString());
@@ -783,7 +783,7 @@
 				if (value != null) {
 					result.setValue(value);
 					if (JDIDebugOptions.DEBUG_AST_EVAL) {
-						StringBuffer buf = new StringBuffer();
+						StringBuilder buf = new StringBuilder();
 						buf.append("\tResult: "); //$NON-NLS-1$
 						buf.append(value);
 						JDIDebugOptions.trace(buf.toString());
@@ -794,7 +794,7 @@
 			}
 
 			if (JDIDebugOptions.DEBUG_AST_EVAL) {
-				StringBuffer buf = new StringBuffer();
+				StringBuilder buf = new StringBuilder();
 				buf.append("\tDuration: "); //$NON-NLS-1$
 				buf.append(end - start);
 				buf.append("ms"); //$NON-NLS-1$
@@ -822,7 +822,7 @@
 	 */
 	public static String replaceThisReferences(String snippet) {
 		// replace all occurrences of 'this' with 'array_this'
-		StringBuffer updatedSnippet = new StringBuffer();
+		StringBuilder updatedSnippet = new StringBuilder();
 		Matcher matcher = fgThisPattern.matcher(snippet);
 		int start = 0;
 		while (matcher.find()) {
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
index 0a293db..d3de485 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java
@@ -250,9 +250,9 @@
 			}
 			return "java.lang.Object"; //$NON-NLS-1$
 		}
-		StringBuffer name;
+		StringBuilder name;
 		if (typeBinding.isArray()) {
-			name = new StringBuffer(getTypeName(typeBinding.getElementType()));
+			name = new StringBuilder(getTypeName(typeBinding.getElementType()));
 			int dimensions = typeBinding.getDimensions();
 			for (int i = 0; i < dimensions; i++) {
 				name.append("[]"); //$NON-NLS-1$
@@ -260,7 +260,7 @@
 			return name.toString();
 		}
 		//try it the old way
-		name = new StringBuffer(Signature.getTypeErasure(typeBinding.getName()));
+		name = new StringBuilder(Signature.getTypeErasure(typeBinding.getName()));
 		IPackageBinding packageBinding = typeBinding.getPackage();
 		typeBinding = typeBinding.getDeclaringClass();
 		while (typeBinding != null) {
@@ -4397,7 +4397,7 @@
 			return tokenString;
 		}
 		ignore = true;
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(token, 0, start);
 		loop: for (int i = start; i < max; i++) {
 			char currentChar = token[i];
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
index 9f4cb10..6fe6902 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/BinaryBasedSourceGenerator.java
@@ -39,7 +39,7 @@
 
 	private boolean fIsInStaticMethod;
 
-	private StringBuffer fSource;
+	private StringBuilder fSource;
 
 	private int fRunMethodStartOffset;
 	private int fRunMethodLength;
@@ -114,8 +114,8 @@
 		return methodName;
 	}
 
-	private StringBuffer buildRunMethod(ReferenceType type) {
-		StringBuffer source = new StringBuffer();
+	private StringBuilder buildRunMethod(ReferenceType type) {
+		StringBuilder source = new StringBuilder();
 
 		if (isInStaticMethod()) {
 			source.append("static "); //$NON-NLS-1$
@@ -144,8 +144,8 @@
 		return source;
 	}
 
-	private StringBuffer buildTypeDeclaration(ReferenceType referenceType,
-			StringBuffer buffer, String nestedTypeName) {
+	private StringBuilder buildTypeDeclaration(ReferenceType referenceType,
+			StringBuilder buffer, String nestedTypeName) {
 
 		Field thisField = null;
 
@@ -158,7 +158,7 @@
 			}
 		}
 
-		StringBuffer source = buildTypeDeclaration(referenceType, buffer,
+		StringBuilder source = buildTypeDeclaration(referenceType, buffer,
 				nestedTypeName, thisField != null);
 
 		if (thisField == null) {
@@ -183,10 +183,10 @@
 		return source;
 	}
 
-	private StringBuffer buildTypeDeclaration(ReferenceType referenceType,
-			StringBuffer buffer, String nestedTypeName,
+	private StringBuilder buildTypeDeclaration(ReferenceType referenceType,
+			StringBuilder buffer, String nestedTypeName,
 			boolean hasEnclosingInstance) {
-		StringBuffer source = new StringBuffer();
+		StringBuilder source = new StringBuilder();
 
 		String typeName = referenceType.name();
 
@@ -291,7 +291,7 @@
 					try {
 						interfaces = classType.interfaces();
 					} catch (ClassNotPreparedException e) {
-						return new StringBuffer();
+						return new StringBuilder();
 					}
 					if (interfaces.size() != 0) {
 						source.append("implements "); //$NON-NLS-1$
@@ -373,8 +373,8 @@
 		return source;
 	}
 
-	private StringBuffer buildFieldDeclaration(Field field) {
-		StringBuffer source = new StringBuffer();
+	private StringBuilder buildFieldDeclaration(Field field) {
+		StringBuilder source = new StringBuilder();
 
 		if (field.isFinal()) {
 			source.append("final "); //$NON-NLS-1$
@@ -398,8 +398,8 @@
 		return source;
 	}
 
-	private StringBuffer buildMethodDeclaration(Method method) {
-		StringBuffer source = new StringBuffer();
+	private StringBuilder buildMethodDeclaration(Method method) {
+		StringBuilder source = new StringBuilder();
 
 		if (method.isFinal()) {
 			source.append("final "); //$NON-NLS-1$
@@ -586,7 +586,7 @@
 		return fIsInStaticMethod;
 	}
 
-	public StringBuffer getSource() {
+	public StringBuilder getSource() {
 		return fSource;
 	}
 
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
index 9c68780..ba9200f 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/EvaluationSourceGenerator.java
@@ -103,7 +103,7 @@
 				break;
 			}
 		}
-		StringBuffer wordBuffer = new StringBuffer();
+		StringBuilder wordBuffer = new StringBuilder();
 		// if semicolon missing at the end
 		if (lastSemilcolonIndex != chars.length-1)
 			semicolonIndex = lastSemilcolonIndex;
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
index 5a65c6b..7bb603c 100644
--- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
+++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/SourceBasedSourceGenerator.java
@@ -138,7 +138,7 @@
 	private IType fType;
 	private int fLine;
 
-	private StringBuffer fSource;
+	private StringBuilder fSource;
 
 	private String fLastTypeName;
 
@@ -257,8 +257,8 @@
 		return fError;
 	}
 
-	private StringBuffer buildRunMethod(List<BodyDeclaration> bodyDeclarations) {
-		StringBuffer buffer = new StringBuffer();
+	private StringBuilder buildRunMethod(List<BodyDeclaration> bodyDeclarations) {
+		StringBuilder buffer = new StringBuilder();
 
 		if (fCreateInAStaticMethod) {
 			buffer.append("static "); //$NON-NLS-1$
@@ -302,7 +302,7 @@
 	 * @param buffer
 	 * @since 3.8.0
 	 */
-	void adddTypeParameters(StringBuffer buffer) {
+	void adddTypeParameters(StringBuilder buffer) {
 		if (isSourceLevelGreaterOrEqual(1, 5)) {
 			Collection<String> activeTypeParameters = (fMatchingTypeParameters != null ? fMatchingTypeParameters : fTypeParameterStack.peek()).values();
 			if (!activeTypeParameters.isEmpty()) {
@@ -359,8 +359,8 @@
 		return false;
 	}
 
-	private StringBuffer buildTypeBody(StringBuffer buffer, List<BodyDeclaration> list) {
-		StringBuffer source = new StringBuffer();
+	private StringBuilder buildTypeBody(StringBuilder buffer, List<BodyDeclaration> list) {
+		StringBuilder source = new StringBuilder();
 
 		source.append('{').append('\n');
 
@@ -374,9 +374,9 @@
 		return source;
 	}
 
-	private StringBuffer buildEnumBody(StringBuffer buffer,
+	private StringBuilder buildEnumBody(StringBuilder buffer,
 			List<EnumConstantDeclaration> constantDeclarations, List<BodyDeclaration> bodyDeclarations) {
-		StringBuffer source = new StringBuffer();
+		StringBuilder source = new StringBuilder();
 
 		source.append('{').append('\n');
 		if (constantDeclarations.isEmpty()) {
@@ -416,8 +416,8 @@
 	 *            the list of {@link BodyDeclaration}s
 	 * @return the new source buffer
 	 */
-	private StringBuffer buildBody(StringBuffer buffer, List<BodyDeclaration> list) {
-		StringBuffer source = new StringBuffer();
+	private StringBuilder buildBody(StringBuilder buffer, List<BodyDeclaration> list) {
+		StringBuilder source = new StringBuilder();
 		if (buffer != null) {
 			fSnippetStartPosition += source.length();
 			source.append(buffer.toString());
@@ -445,8 +445,8 @@
 		return source;
 	}
 
-	private StringBuffer buildFieldDeclaration(FieldDeclaration fieldDeclaration) {
-		StringBuffer source = new StringBuffer();
+	private StringBuilder buildFieldDeclaration(FieldDeclaration fieldDeclaration) {
+		StringBuilder source = new StringBuilder();
 
 		source.append(Flags.toString(fieldDeclaration.getModifiers()));
 		source.append(' ');
@@ -475,9 +475,9 @@
 		return source;
 	}
 
-	private StringBuffer buildMethodDeclaration(
+	private StringBuilder buildMethodDeclaration(
 			MethodDeclaration methodDeclaration) {
-		StringBuffer source = new StringBuffer();
+		StringBuilder source = new StringBuilder();
 		int modifiers = methodDeclaration.getModifiers();
 		source.append(Flags.toString(modifiers));
 		source.append(' ');
@@ -547,7 +547,7 @@
 		return source;
 	}
 
-	private void appendExtraDimensions(StringBuffer source, int extraDimension) {
+	private void appendExtraDimensions(StringBuilder source, int extraDimension) {
 		if (extraDimension > 0) {
 			source.append(' ');
 			for (int i = 0; i < extraDimension; i++) {
@@ -556,9 +556,9 @@
 		}
 	}
 
-	private StringBuffer buildEnumDeclaration(StringBuffer buffer,
+	private StringBuilder buildEnumDeclaration(StringBuilder buffer,
 			EnumDeclaration enumDeclaration) {
-		StringBuffer source = new StringBuffer();
+		StringBuilder source = new StringBuilder();
 		source.append(Flags.toString(enumDeclaration.getModifiers()));
 		source.append(" enum "); //$NON-NLS-1$
 
@@ -583,10 +583,10 @@
 		return source;
 	}
 
-	private StringBuffer buildTypeDeclaration(StringBuffer buffer,
+	private StringBuilder buildTypeDeclaration(StringBuilder buffer,
 			TypeDeclaration typeDeclaration) {
 
-		StringBuffer source = new StringBuffer();
+		StringBuilder source = new StringBuilder();
 		source.append(Flags.toString(typeDeclaration.getModifiers()));
 		if (typeDeclaration.isInterface()) {
 			source.append(" interface "); //$NON-NLS-1$
@@ -658,9 +658,9 @@
 		return source;
 	}
 
-	private StringBuffer buildCompilationUnit(StringBuffer buffer,
+	private StringBuilder buildCompilationUnit(StringBuilder buffer,
 			CompilationUnit compilationUnit) {
-		StringBuffer source = new StringBuffer();
+		StringBuilder source = new StringBuilder();
 
 		PackageDeclaration packageDeclaration = compilationUnit.getPackage();
 		if (packageDeclaration != null) {
@@ -808,7 +808,7 @@
 					+ qualifiedType.getName().getIdentifier();
 		} else if (type.isParameterizedType()) {
 			ParameterizedType parameterizedType = (ParameterizedType) type;
-			StringBuffer buff = new StringBuffer(
+			StringBuilder buff = new StringBuilder(
 					getTypeName(parameterizedType.getType()));
 			Iterator<Type> iter = parameterizedType.typeArguments().iterator();
 			if (iter.hasNext() && isSourceLevelGreaterOrEqual(1, 5)) {
@@ -823,7 +823,7 @@
 			return buff.toString();
 		} else if (type.isWildcardType()) {
 			WildcardType wildcardType = (WildcardType) type;
-			StringBuffer buff = new StringBuffer("?"); //$NON-NLS-1$
+			StringBuilder buff = new StringBuilder("?"); //$NON-NLS-1$
 			Type bound = wildcardType.getBound();
 			if (bound != null) {
 				buff.append(wildcardType.isUpperBound() ? " extends " : " super "); //$NON-NLS-1$ //$NON-NLS-2$
@@ -881,7 +881,7 @@
 				List<BodyDeclaration> bodyDeclarations = anonymousClassDeclaration
 						.bodyDeclarations();
 
-				StringBuffer source = buildTypeBody(fSource, bodyDeclarations);
+				StringBuilder source = buildTypeBody(fSource, bodyDeclarations);
 
 				ASTNode parent = node.getParent();
 				while (!(parent instanceof MethodDeclaration
@@ -890,7 +890,7 @@
 					parent = parent.getParent();
 				}
 
-				fSource = new StringBuffer();
+				fSource = new StringBuilder();
 
 				if (parent instanceof Initializer) {
 					buildAnonymousEvalMethod(true, bodyDeclarations,
@@ -954,7 +954,7 @@
 	 * @since 3.7
 	 */
 	void buildAnonymousEvalMethod(boolean isstatic, List<BodyDeclaration> bodydecls,
-			String typename, StringBuffer body) {
+			String typename, StringBuilder body) {
 		if (isstatic) {
 			fSource.append("static "); //$NON-NLS-1$
 		}
@@ -1033,7 +1033,7 @@
 
 		if (rightTypeFound()) {
 
-			StringBuffer source = buildEnumDeclaration(fSource, node);
+			StringBuilder source = buildEnumDeclaration(fSource, node);
 
 			if (node.isLocalTypeDeclaration()) {
 				// enclose in a method if necessary
@@ -1044,7 +1044,7 @@
 				}
 				MethodDeclaration enclosingMethodDeclaration = (MethodDeclaration) parent;
 
-				fSource = new StringBuffer();
+				fSource = new StringBuilder();
 
 				if (Flags.isStatic(enclosingMethodDeclaration.getModifiers())) {
 					fSource.append("static "); //$NON-NLS-1$
@@ -1097,7 +1097,7 @@
 
 		if (rightTypeFound()) {
 
-			StringBuffer source = buildTypeDeclaration(fSource, node);
+			StringBuilder source = buildTypeDeclaration(fSource, node);
 
 			if (node.isLocalTypeDeclaration()) {
 				// enclose in a method if nessecary
@@ -1108,7 +1108,7 @@
 				}
 				MethodDeclaration enclosingMethodDeclaration = (MethodDeclaration) parent;
 
-				fSource = new StringBuffer();
+				fSource = new StringBuilder();
 
 				if (Flags.isStatic(enclosingMethodDeclaration.getModifiers())) {
 					fSource.append("static "); //$NON-NLS-1$
@@ -2127,7 +2127,7 @@
 	 * @param typeParameters
 	 *            the list of {@link TypeParameter}s to add
 	 */
-	private void appendTypeParameters(StringBuffer source, List<TypeParameter> typeParameters) {
+	private void appendTypeParameters(StringBuilder source, List<TypeParameter> typeParameters) {
 		if (!typeParameters.isEmpty() && isSourceLevelGreaterOrEqual(1, 5)) {
 			source.append('<');
 			Iterator<TypeParameter> iter = typeParameters.iterator();
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java
index 090eaf3..7bf9606 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/ArrayReferenceImpl.java
@@ -414,7 +414,7 @@
 	@Override
 	public String toString() {
 		try {
-			StringBuffer buf = new StringBuffer(type().name());
+			StringBuilder buf = new StringBuilder(type().name());
 			// Insert length of string between (last) square braces.
 			buf.insert(buf.length() - 1, length());
 			// Append space and idString.
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java
index 1fa24d6..19aab80 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/MirrorImpl.java
@@ -192,7 +192,7 @@
 				.getReply(commandPacket);
 		long recieved = System.currentTimeMillis();
 		if (JDIDebugOptions.DEBUG_JDI_REQUEST_TIMES) {
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
 			buf.append(JDIDebugOptions.FORMAT.format(new Date(sent)));
 			buf.append(" JDI Request: "); //$NON-NLS-1$
 			buf.append(commandPacket.toString());
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java
index 07895fd..1c6e339 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/SourceDebugExtensionParser.java
@@ -553,7 +553,7 @@
 
 	private String getNonAsteriskString(Lexer lexer)
 			throws AbsentInformationException {
-		StringBuffer string = new StringBuffer();
+		StringBuilder string = new StringBuilder();
 		int lexemType = lexer.lexemType();
 		while (lexemType != Lexer.CR) {
 			string.append(lexer.lexem());
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java
index edcd732..253c616 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/TypeImpl.java
@@ -132,7 +132,7 @@
 		 * JNI signature examples: int[][] -> [[I long[] -> [J java.lang.String
 		 * -> Ljava/lang/String; java.lang.String[] -> [Ljava/lang/String;
 		 */
-		StringBuffer signature = new StringBuffer();
+		StringBuilder signature = new StringBuilder();
 
 		int firstBrace = qualifiedName.indexOf('[');
 		if (firstBrace < 0) {
@@ -220,7 +220,7 @@
 		if (signature.indexOf('[') < 0) {
 			return signature;
 		}
-		StringBuffer name = new StringBuffer();
+		StringBuilder name = new StringBuilder();
 		String type = signature.substring(signature.lastIndexOf('[') + 1);
 		if (type.length() == 1 && isPrimitiveSignature(type)) {
 			name.append(getPrimitiveSignatureToName(type.charAt(0)));
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java
index f2c0aed..4fd40b2 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/VerboseWriter.java
@@ -31,8 +31,8 @@
 
 	/** PrintWriter that is written to. */
 	private PrintWriter fOutput;
-	/** Buffer for output: one StringBuffer entry per line. */
-	private List<StringBuffer> fLineBuffer;
+	/** Buffer for output: one StringBuilder entry per line. */
+	private List<StringBuilder> fLineBuffer;
 	/** Position from where buffer is written to. */
 	private int fPosition;
 	/** True if the current line has not yet been written to. */
@@ -46,7 +46,7 @@
 		fOutput = out;
 		fLineBuffer = new ArrayList<>();
 		fPosition = 0;
-		fLineBuffer.add(new StringBuffer());
+		fLineBuffer.add(new StringBuilder());
 	}
 
 	/**
@@ -529,14 +529,14 @@
 				fOutput.println(new String(fLineBuffer.get(i)));
 
 			// The last line should be printed without an extra newline
-			StringBuffer lastLine = fLineBuffer.get(bufSize - 1);
+			StringBuilder lastLine = fLineBuffer.get(bufSize - 1);
 			if (lastLine.length() > 0)
 				fOutput.print(new String(lastLine));
 
 			fOutput.flush();
 			fLineBuffer.clear();
 			fPosition = 0;
-			fLineBuffer.add(new StringBuffer());
+			fLineBuffer.add(new StringBuilder());
 		}
 	}
 
@@ -575,7 +575,7 @@
 	 */
 	public void markLn() {
 		if (++fPosition == fLineBuffer.size()) {
-			fLineBuffer.add(new StringBuffer());
+			fLineBuffer.add(new StringBuilder());
 		}
 
 		fNewLine = true;
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
index 103383c..29bf54a 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpCommandPacket.java
@@ -337,7 +337,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append('[');
 		buffer.append(getId());
 		buffer.append("] "); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java
index 90f333b..fd70046 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpReplyPacket.java
@@ -174,7 +174,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("["); //$NON-NLS-1$
 		buffer.append(getId());
 		buffer.append("] "); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java
index 8b1af64..27f7682 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/jdwp/JdwpString.java
@@ -30,7 +30,7 @@
 		byte utfBytes[] = new byte[utfSize];
 		in.readFully(utfBytes);
 		/* Guess at buffer size */
-		StringBuffer strBuffer = new StringBuffer(utfSize / 3 * 2);
+		StringBuilder strBuffer = new StringBuilder(utfSize / 3 * 2);
 		for (int i = 0; i < utfSize;) {
 			int a = utfBytes[i] & 0xFF;
 			if ((a >> 4) < 12) {
diff --git a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java
index d5c133b..a83728d 100644
--- a/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java
+++ b/org.eclipse.jdt.debug/jdi/org/eclipse/jdi/internal/spy/VerbosePacketStream.java
@@ -2463,7 +2463,7 @@
 		byte utfBytes[] = new byte[utfSize];
 		in.readFully(utfBytes);
 		/* Guess at buffer size */
-		StringBuffer strBuffer = new StringBuffer(utfSize / 3 * 2);
+		StringBuilder strBuffer = new StringBuilder(utfSize / 3 * 2);
 		for (int i = 0; i < utfSize;) {
 			int a = utfBytes[i] & 0xFF;
 			if ((a >> 4) < 12) {
@@ -2792,7 +2792,7 @@
 	protected void println(String description, String value) {
 		printDescription(description);
 		print('\"');
-		StringBuffer val = new StringBuffer();
+		StringBuilder val = new StringBuilder();
 		int pos = 0, lastPos = 0;
 		while ((pos = value.indexOf('\n', lastPos)) != -1) {
 			pos++;
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java
index 7b3a7a2..ab23633 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/EventDispatcher.java
@@ -104,7 +104,7 @@
 		}
 		if (JDIDebugOptions.DEBUG_JDI_EVENTS) {
 			EventIterator eventIter = eventSet.eventIterator();
-			StringBuffer buf = new StringBuffer("JDI Event Set: {\n"); //$NON-NLS-1$
+			StringBuilder buf = new StringBuilder("JDI Event Set: {\n"); //$NON-NLS-1$
 			while (eventIter.hasNext()) {
 				buf.append(eventIter.next());
 				if (eventIter.hasNext()) {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java
index 574aab6..8cc7821 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpoint.java
@@ -994,7 +994,7 @@
 	}
 
 	protected String getMarkerMessage(int hitCount, int suspendPolicy) {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		if (hitCount > 0) {
 			buff.append(MessageFormat
 					.format(JDIDebugBreakpointMessages.JavaBreakpoint___Hit_Count___0___1,
@@ -1434,7 +1434,7 @@
 	 * @throws CoreException
 	 */
 	private void writeBreakpointListeners() throws CoreException {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		Iterator<String> iterator = fBreakpointListenerIds.iterator();
 		while (iterator.hasNext()) {
 			buf.append(iterator.next());
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java
index 7acaeaa..d8d4cc3 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaBreakpointImportParticipant.java
@@ -135,7 +135,7 @@
 		 * @return the fully qualified name of the enclosing type
 		 */
 		private String getTypeName(ASTNode node) {
-			return getTypeName(node, new StringBuffer());
+			return getTypeName(node, new StringBuilder());
 		}
 
 		/**
@@ -147,7 +147,7 @@
 		 *            the buffer to write the name into
 		 * @return the fully qualified name of the parent
 		 */
-		private String getTypeName(ASTNode node, StringBuffer buffer) {
+		private String getTypeName(ASTNode node, StringBuilder buffer) {
 			switch (node.getNodeType()) {
 			case ASTNode.COMPILATION_UNIT: {
 				CompilationUnit unit = (CompilationUnit) node;
@@ -341,7 +341,7 @@
 						}
 					}
 				} else {
-					StringBuffer buffer = new StringBuffer();
+					StringBuilder buffer = new StringBuilder();
 					buffer.append("<init>"); //$NON-NLS-1$
 					collectSyntheticParam(node, rparams);
 					buffer.append(Signature.createMethodSignature(
@@ -423,7 +423,7 @@
 				return;
 			}
 			ASTNode parent = method.getParent();
-			StringBuffer name = new StringBuffer();
+			StringBuilder name = new StringBuilder();
 			while (parent != null) {
 				parent = parent.getParent();
 				if (parent instanceof AbstractTypeDeclaration) {
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java
index b355a70..ded77e9 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaExceptionBreakpoint.java
@@ -599,7 +599,7 @@
 			return ""; //$NON-NLS-1$
 		}
 		Set<String> set = new HashSet<>(list.length);
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		for (int i = 0; i < list.length; i++) {
 			if (i > 0 && i < list.length) {
 				buffer.append(',');
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java
index 44b4e2c..6c3bf53 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/breakpoints/JavaLineBreakpoint.java
@@ -508,7 +508,7 @@
 
 	protected String getMarkerMessage(boolean conditionEnabled,
 			String condition, int hitCount, int suspendPolicy, int lineNumber) {
-		StringBuffer message = new StringBuffer(super.getMarkerMessage(
+		StringBuilder message = new StringBuilder(super.getMarkerMessage(
 				hitCount, suspendPolicy));
 		if (lineNumber != -1) {
 			message.append(MessageFormat
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java
index bdf9089..18b6566 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/CompilationUnitDelta.java
@@ -191,7 +191,7 @@
 		}
 		BufferedReader reader = null;
 		try {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			char[] part = new char[2048];
 			int read = 0;
 			reader = new BufferedReader(new InputStreamReader(is,
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java
index f9506a0..d508df7 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIAllInstancesValue.java
@@ -295,7 +295,7 @@
 	 *         pane
 	 */
 	public String getDetailString() {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		Object[] elements = getInstances();
 		if (elements.length == 0) {
 			buf.append(LogicalStructuresMessages.JDIAllInstancesValue_10);
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java
index 2bbb232..9f5466b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructure.java
@@ -179,7 +179,7 @@
 		 */
 		private void log(String[] messages) {
 			if (isContributed()) {
-				StringBuffer log = new StringBuffer();
+				StringBuilder log = new StringBuilder();
 				for (String message : messages) {
 					log.append(message).append('\n');
 				}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
index 772369a..6ec1002 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaLogicalStructures.java
@@ -204,7 +204,7 @@
 	 * Save the user defined logical structures in the preference store.
 	 */
 	public static void saveUserDefinedJavaLogicalStructures() {
-		StringBuffer logicalStructuresString = new StringBuffer();
+		StringBuilder logicalStructuresString = new StringBuilder();
 		for (Iterator<JavaLogicalStructure> iter = fUserDefinedJavaLogicalStructures.iterator(); iter
 				.hasNext();) {
 			JavaLogicalStructure logicalStructure = iter
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java
index 47a091b..417775d 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JavaStructureErrorValue.java
@@ -115,7 +115,7 @@
 	public IVariable[] getVariables() throws DebugException {
 		IVariable[] variables = new IVariable[fMessages.length];
 		for (int i = 0; i < variables.length; i++) {
-			StringBuffer varName = new StringBuffer();
+			StringBuilder varName = new StringBuilder();
 			if (variables.length > 1) {
 				varName.append(
 						LogicalStructuresMessages.JavaStructureErrorValue_0)
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
index b9eb162..f0c9959 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIArrayEntryVariable.java
@@ -166,7 +166,7 @@
 		if (lastLeft < 0) {
 			return typeName;
 		}
-		StringBuffer buffer = new StringBuffer(typeName);
+		StringBuilder buffer = new StringBuilder(typeName);
 		buffer.replace(lastLeft, lastLeft + 2, ""); //$NON-NLS-1$
 		return buffer.toString();
 	}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java
index 198e5af..fca02dc 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDINullValue.java
@@ -187,7 +187,7 @@
 	 */
 	private IJavaValue npe(String selector, String signature)
 			throws DebugException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(selector);
 		String[] parameterTypes = Signature.getParameterTypes(signature);
 		buffer.append('(');
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java
index 06de5b5..02ce58e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceListValue.java
@@ -215,7 +215,7 @@
 	 *         pane
 	 */
 	public String getDetailString() {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		Object[] elements = getReferences();
 		if (elements.length == 0) {
 			buf.append(JDIDebugModelMessages.JDIReferenceListValue_2);
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java
index 6dc2a16..4e4740e 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIReferenceType.java
@@ -290,7 +290,7 @@
 			}
 		}
 		String signature = type.signature();
-		StringBuffer res = new StringBuffer(getTypeName(signature));
+		StringBuilder res = new StringBuilder(getTypeName(signature));
 		String genericSignature = type.genericSignature();
 		if (genericSignature != null) {
 			String[] typeParameters = Signature
@@ -321,7 +321,7 @@
 			arrayDimension++;
 		}
 		int parameterStart = genericTypeSignature.indexOf('<');
-		StringBuffer name = new StringBuffer();
+		StringBuilder name = new StringBuilder();
 		if (parameterStart < 0) {
 			name.append(genericTypeSignature.substring(arrayDimension + 1,
 					genericTypeSignature.length() - 1).replace('/', '.'));
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java
index c81761a..b1cfcae 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIValue.java
@@ -137,7 +137,7 @@
 			}
 		}
 		if (fValue instanceof ObjectReference) {
-			StringBuffer name = new StringBuffer();
+			StringBuilder name = new StringBuilder();
 			if (fValue instanceof ClassObjectReference) {
 				name.append('(');
 				name.append(((ClassObjectReference) fValue).reflectedType());
diff --git a/org.eclipse.jdt.launching.macosx/macosx/org/eclipse/jdt/internal/launching/macosx/MacOSXVMInstall.java b/org.eclipse.jdt.launching.macosx/macosx/org/eclipse/jdt/internal/launching/macosx/MacOSXVMInstall.java
index 1f80965..837177d 100644
--- a/org.eclipse.jdt.launching.macosx/macosx/org/eclipse/jdt/internal/launching/macosx/MacOSXVMInstall.java
+++ b/org.eclipse.jdt.launching.macosx/macosx/org/eclipse/jdt/internal/launching/macosx/MacOSXVMInstall.java
@@ -49,7 +49,7 @@
                 MacOSXVMInstallType installType= (MacOSXVMInstallType) getVMInstallType();
                 String vmVersion= installType.getVMVersion(installLocation, executable);
                 // strip off extra info
-                StringBuffer version= new StringBuffer();
+                StringBuilder version= new StringBuilder();
                 for (int i= 0; i < vmVersion.length(); i++) {
                     char ch= vmVersion.charAt(i);
                     if (Character.isDigit(ch) || ch == '.') {
diff --git a/org.eclipse.jdt.launching.ui.macosx/src/org/eclipse/jdt/internal/ui/macbundler/BundleBuilder.java b/org.eclipse.jdt.launching.ui.macosx/src/org/eclipse/jdt/internal/ui/macbundler/BundleBuilder.java
index 0e57c8a..f2a7382 100644
--- a/org.eclipse.jdt.launching.ui.macosx/src/org/eclipse/jdt/internal/ui/macbundler/BundleBuilder.java
+++ b/org.eclipse.jdt.launching.ui.macosx/src/org/eclipse/jdt/internal/ui/macbundler/BundleBuilder.java
@@ -156,7 +156,7 @@
 		int[] id= new int[] { 0 };
 		ResourceInfo[] ris= fBundleDescription.getResources(true);
 		if (ris.length > 0) {
-			StringBuffer cp= new StringBuffer();
+			StringBuilder cp= new StringBuilder();
 			for (int i= 0; i < ris.length; i++) {
 				ResourceInfo ri= ris[i];
 				String e= processClasspathEntry(java_dir, ri.fPath, id);
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java
index 12c0424..25860c0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/CompositeId.java
@@ -38,7 +38,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buf= new StringBuffer();
+		StringBuilder buf= new StringBuilder();
 		for (int i= 0; i < fParts.length; i++) {
 			buf.append(fParts[i].length());
 			buf.append(',');
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java
index 9090022..a50f070 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaAppletLaunchConfigurationDelegate.java
@@ -108,7 +108,7 @@
 		File tempFile = new File(dir, name + System.currentTimeMillis() + ".html"); //$NON-NLS-1$
 		try (FileOutputStream stream = new FileOutputStream(tempFile)) {
 			String encoding = getLaunchManager().getEncoding(configuration);
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
 			buf.append("<html>\n"); //$NON-NLS-1$
 			buf.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" + encoding + "\"/>\n"); //$NON-NLS-1$ //$NON-NLS-2$
 			buf.append("<body>\n"); //$NON-NLS-1$
@@ -185,7 +185,7 @@
 			return text;
 		}
 
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		while (current > -1) {
 			buffer.append(text.substring(previous, current));
 			buffer.append(s);
@@ -346,7 +346,7 @@
 	 */
 	@Override
 	public String getVMArguments(ILaunchConfiguration configuration) throws CoreException {
-		StringBuffer arguments = new StringBuffer(super.getVMArguments(configuration));
+		StringBuilder arguments = new StringBuilder(super.getVMArguments(configuration));
 		File workingDir = verifyWorkingDirectory(configuration);
 		String javaPolicyFile = getJavaPolicyFile(workingDir);
 		arguments.append(" "); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java
index 471965f..30cd679 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/JavaLaunchableTester.java
@@ -404,7 +404,7 @@
 
 	private boolean findAnnotation(IScanner scanner, String annotationName) throws InvalidInputException {
 		String simpleName= Signature.getSimpleName(annotationName);
-		StringBuffer buf= new StringBuffer();
+		StringBuilder buf= new StringBuilder();
 		int tok= scanner.getNextToken();
 		while (tok != ITerminalSymbols.TokenNameEOF) {
 			if (tok == ITerminalSymbols.TokenNameAT) {
@@ -421,7 +421,7 @@
 		return false;
 	}
 
-	private int readName(IScanner scanner, StringBuffer buf) throws InvalidInputException {
+	private int readName(IScanner scanner, StringBuilder buf) throws InvalidInputException {
 		int tok= scanner.getNextToken();
 		while (tok == ITerminalSymbols.TokenNameIdentifier) {
 			buf.append(scanner.getCurrentTokenSource());
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
index 35c1e3c..44dc489 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
@@ -58,7 +58,7 @@
 		String val = dnode.get(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, (String)null);
 		if(val != null && !"".equals(val)) { //$NON-NLS-1$
 			String[] filters = val.split(","); //$NON-NLS-1$
-			StringBuffer buff = new StringBuffer();
+			StringBuilder buff = new StringBuilder();
 			boolean found = false;
 			for (int i = 0; i < filters.length; i++) {
 				if(launchFilter.equals(val)) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java
index 07a339c..3edee50 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/MacInstalledJREs.java
@@ -178,7 +178,7 @@
 								File loc = new File((String)home);
 								//10.8.2+ can have more than one of the same VM, which will have the same name
 								//augment it with the version to make it easier to distinguish
-								StringBuffer namebuff = new StringBuffer(name.toString());
+								StringBuilder namebuff = new StringBuilder(name.toString());
 								namebuff.append(" [").append(ver).append("]");  //$NON-NLS-1$//$NON-NLS-2$
 								MacVMStandin vm = new MacVMStandin(mactype, loc, namebuff.toString(), ver, computeId(map, ver));
 								vm.setJavadocLocation(mactype.getDefaultJavadocLocation(loc));
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java
index 5083692..77bf1c0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver.java
@@ -64,7 +64,7 @@
 				}
 			}
 			entries = collect.toArray(new IRuntimeClasspathEntry[collect.size()]);
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			for (int i = 0; i < entries.length; i++) {
 				if (i > 0) {
 					buffer.append(File.pathSeparatorChar);
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java
index 2272091..de59c7b 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketAttachConnector.java
@@ -184,7 +184,7 @@
 				name = configuration.getName();
 			}
 		}
-		StringBuffer buffer = new StringBuffer(name);
+		StringBuilder buffer = new StringBuilder(name);
 		if(!"".equals(name)) { //$NON-NLS-1$
 			buffer.append(' ');
 		}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java
index 622628e..cd90f76 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/SocketListenConnectorProcess.java
@@ -405,7 +405,7 @@
 					name = configuration.getName();
 				}
 			}
-			StringBuffer buffer = new StringBuffer(name);
+			StringBuilder buffer = new StringBuilder(name);
 			if (fConnectionLimit != 1) {
 				// if we're accepting multiple incoming connections,
 				// append the time when each connection was accepted
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java
index 35312a3..9166158 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVM.java
@@ -56,7 +56,7 @@
             if (executable != null) {
                 String vmVersion = installType.getVMVersion(installLocation, executable);
                 // strip off extra info
-                StringBuffer version = new StringBuffer();
+                StringBuilder version = new StringBuilder();
                 for (int i = 0; i < vmVersion.length(); i++) {
                     char ch = vmVersion.charAt(i);
                     if (Character.isDigit(ch) || ch == '.') {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java
index 99b1e5e..f652aa0 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMDebugger.java
@@ -314,7 +314,7 @@
 				}
 				if(envp != null) {
 					Arrays.sort(envp);
-					StringBuffer buff = new StringBuffer();
+					StringBuilder buff = new StringBuilder();
 					for (int i = 0; i < envp.length; i++) {
 						buff.append(envp[i]);
 						if(i < envp.length-1) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
index af3dd37..fffbb21 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMRunner.java
@@ -303,7 +303,7 @@
 
 	protected String convertClassPath(String[] cp) {
 		int pathCount= 0;
-		StringBuffer buf= new StringBuffer();
+		StringBuilder buf= new StringBuilder();
 		if (cp.length == 0) {
 			return "";    //$NON-NLS-1$
 		}
@@ -453,7 +453,7 @@
 		}
 		if(envp != null) {
 			Arrays.sort(envp);
-			StringBuffer buff = new StringBuffer();
+			StringBuilder buff = new StringBuilder();
 			for (int i = 0; i < envp.length; i++) {
 				buff.append(envp[i]);
 				if(i < envp.length-1) {
@@ -505,7 +505,7 @@
 			//greater than 32767 is a no-go
 			//see http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
 			if(size > 32767) {
-				StringBuffer newcp = new StringBuffer("CLASSPATH="); //$NON-NLS-1$
+				StringBuilder newcp = new StringBuilder("CLASSPATH="); //$NON-NLS-1$
 				for (int i = 0; i < cp.length; i++) {
 					newcp.append(cp[i]);
 					newcp.append(File.pathSeparatorChar);
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
index ffabb5b..16e04d6 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
@@ -371,7 +371,7 @@
 		if (extension != null) {
 			IPath srcPath = new Path(libLocation.getPath());
 			srcPath = srcPath.removeLastSegments(1);
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
 			buf.append(prefix);
 			buf.append("-src."); //$NON-NLS-1$
 			buf.append(extension);
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java
index 8f48cf3..21cccc5 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/VMDefinitionsContainer.java
@@ -342,7 +342,7 @@
 		} else {
 			String[] vmArgs = vm.getVMArguments();
 			if (vmArgs != null && vmArgs.length > 0) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				for (int i = 0; i < vmArgs.length; i++) {
 					buffer.append(vmArgs[i] + " "); //$NON-NLS-1$
 				}
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
index a97cc4d..d02870a 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractJavaLaunchConfigurationDelegate.java
@@ -594,7 +594,7 @@
 			// if a library path is already specified, do not override
 			String[] javaLibraryPath = getJavaLibraryPath(configuration);
 			if (javaLibraryPath != null && javaLibraryPath.length > 0) {
-				StringBuffer path = new StringBuffer(args);
+				StringBuilder path = new StringBuilder(args);
 				path.append(" -Djava.library.path="); //$NON-NLS-1$
 				path.append("\""); //$NON-NLS-1$
 				for (int i = 0; i < javaLibraryPath.length; i++) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java
index ddaa77a..e319715 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMInstall.java
@@ -298,7 +298,7 @@
 		if (vmArgs == null) {
 			setVMArgs(null);
 		} else {
-		    StringBuffer buf = new StringBuffer();
+		    StringBuilder buf = new StringBuilder();
 		    for (int i = 0; i < vmArgs.length; i++) {
 	            String string = vmArgs[i];
 	            buf.append(string);
@@ -486,7 +486,7 @@
 	 * @return preference store key
 	 */
 	private String getSystemPropertyKey(String property) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(PREF_VM_INSTALL_SYSTEM_PROPERTY);
 		buffer.append("."); //$NON-NLS-1$
 		buffer.append(getVMInstallType().getId());
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java
index de281cd..0adccbc 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/AbstractVMRunner.java
@@ -142,7 +142,7 @@
 	 * @return a single space-delimited string
 	 */
 	protected String getCmdLineAsString(String[] cmdLine) {
-		StringBuffer buff= new StringBuffer();
+		StringBuilder buff= new StringBuilder();
 		for (int i = 0, numStrings= cmdLine.length; i < numStrings; i++) {
 			buff.append(cmdLine[i]);
 			buff.append(' ');
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
index 6c73e7d..588c221 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaRuntime.java
@@ -3130,7 +3130,7 @@
 	 * @since 3.1
 	 */
 	public static IClasspathAttribute newLibraryPathsAttribute(String[] paths) {
-		StringBuffer value = new StringBuffer();
+		StringBuilder value = new StringBuilder();
 		for (int i = 0; i < paths.length; i++) {
 			value.append(paths[i]);
 			if (i < (paths.length - 1)) {
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java
index eb08641..42a77a4 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/environments/ExecutionEnvironmentDescription.java
@@ -298,7 +298,7 @@
 	 * @return VM arguments or <code>null</code> if none
 	 */
 	public String getVMArguments() {
-		StringBuffer arguments = new StringBuffer();
+		StringBuilder arguments = new StringBuilder();
 		Iterator<Entry<String, String>> entries = fProperties.entrySet().iterator();
 		while (entries.hasNext()) {
 			Entry<String, String> entry = entries.next();
@@ -427,11 +427,11 @@
 	private String resolveHome(String value) {
 		int start = 0;
 		int index = value.indexOf(VAR_EE_HOME, start);
-		StringBuffer replaced = null;
+		StringBuilder replaced = null;
 		String eeHome = getProperty(EE_HOME);
 		while (index >= 0) {
 			if (replaced == null) {
-				replaced = new StringBuffer();
+				replaced = new StringBuilder();
 			}
 			replaced.append(value.substring(start, index));
 			replaced.append(eeHome);
@@ -513,7 +513,7 @@
 					value = makePathAbsolute(value, root);
 
 					List<Character> wildcards = new ArrayList<>();
-					StringBuffer keyBuffer = new StringBuffer();
+					StringBuilder keyBuffer = new StringBuilder();
 				    char [] chars = key.toCharArray();
 				    // Convert lib location to a regex, replace wildcards with grouped equivalents, keep track of used wildcards, allow '\' and '/' to be used, escape special chars
 					for (int j = 0; j < chars.length; j++) {
@@ -531,7 +531,7 @@
 					}
 
 					int currentWild = 0;
-					StringBuffer valueBuffer = new StringBuffer();
+					StringBuilder valueBuffer = new StringBuilder();
 					chars = value.toCharArray();
 					// Convert src location to a regex, replace wildcards with their group number, allow '\' and '/' to be used, escape special chars
 					for (int j = 0; j < chars.length; j++) {
diff --git a/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java b/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java
index 2f03ffa..61e9079 100644
--- a/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java
+++ b/org.eclipse.jdt.launching/support/org/eclipse/jdt/internal/launching/support/LegacySystemProperties.java
@@ -19,7 +19,7 @@
 public class LegacySystemProperties {
 
 	public static void main(String[] args) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("<systemProperties>\n");    //$NON-NLS-1$
 		for (int i = 0; i < args.length; i++) {
 			String name = args[i];