Bug 519192 - Use StringBuilder instead of StringBuffer in
org.eclipse.pde.api.tools

Change-Id: I79f9e23db8dced84b656236a67bcb8a91c067591
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
diff --git a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/util/tests/SignaturesTests.java b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/util/tests/SignaturesTests.java
index 805a95c..c372695 100644
--- a/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/util/tests/SignaturesTests.java
+++ b/apitools/org.eclipse.pde.api.tools.tests/src/org/eclipse/pde/api/tools/util/tests/SignaturesTests.java
@@ -214,7 +214,7 @@
 	 * Tests the {@link Signatures#appendTypeParameters(StringBuffer, String[])} method
 	 */
 	public void testAppendTypeParameters() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Type"); //$NON-NLS-1$
 		Signatures.appendTypeParameters(buffer, null);
 		assertEquals("Should be no type parameters appended", "Type", buffer.toString()); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAccess.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAccess.java
index 0317b66..ad12734 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAccess.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAccess.java
@@ -61,7 +61,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Access Level: "); //$NON-NLS-1$
 		buffer.append(getAccessText(getAccessLevel()));
 		return buffer.toString();
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnnotations.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnnotations.java
index fbeffda..4eb0ddd 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnnotations.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnnotations.java
@@ -43,7 +43,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(VisibilityModifiers.getVisibilityName(getVisibility()));
 		buffer.append(" / "); //$NON-NLS-1$
 		int restrictions = getRestrictions();
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiBaselineManager.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiBaselineManager.java
index 5d71063..8b58b9d 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiBaselineManager.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiBaselineManager.java
@@ -466,7 +466,7 @@
 						Element compElement = (Element) componentNodes.item(i);
 						String id = compElement.getAttribute(IApiXmlConstants.ATTR_ID);
 						String ver = compElement.getAttribute(IApiXmlConstants.ATTR_VERSION);
-						StringBuffer name = new StringBuffer();
+						StringBuilder name = new StringBuilder();
 						name.append(id);
 						name.append('_');
 						name.append(ver);
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescription.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescription.java
index 5f14f99..627f87f 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescription.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescription.java
@@ -150,7 +150,7 @@
 				default:
 					break;
 			}
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(type == null ? "Unknown" : type).append(" Node: ").append(name == null ? "Unknown Name" : name); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			buffer.append("\nVisibility: ").append(VisibilityModifiers.getVisibilityName(visibility)); //$NON-NLS-1$
 			buffer.append("\nRestrictions: ").append(RestrictionModifiers.getRestrictionText(restrictions)); //$NON-NLS-1$
@@ -392,7 +392,7 @@
 	 */
 	protected ManifestNode findNode(IElementDescriptor element, boolean write) {
 		if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Looking up manifest node for element: "); //$NON-NLS-1$
 			buffer.append(element);
 			System.out.println(buffer.toString());
@@ -414,7 +414,7 @@
 					}
 				} else {
 					if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-						StringBuffer buffer = new StringBuffer();
+						StringBuilder buffer = new StringBuilder();
 						buffer.append("Returning parent manifest node: "); //$NON-NLS-1$
 						buffer.append(parentNode);
 						buffer.append(" when looking for element"); //$NON-NLS-1$
@@ -430,7 +430,7 @@
 			}
 		}
 		if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Manifest node found: "); //$NON-NLS-1$
 			buffer.append(node);
 			buffer.append(" when looking for element"); //$NON-NLS-1$
@@ -446,7 +446,7 @@
 		if (node != null) {
 			return resolveAnnotations(node, element);
 		} else if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Tried to resolve annotations for manifest node: "); //$NON-NLS-1$
 			buffer.append(node);
 			buffer.append(" but the node could not be found."); //$NON-NLS-1$
@@ -486,14 +486,14 @@
 			res = node.restrictions;
 		}
 		if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-			StringBuffer stringBuffer = new StringBuffer();
-			stringBuffer.append("Resolved annotations for manifest node: "); //$NON-NLS-1$
-			stringBuffer.append(node);
-			stringBuffer.append(" to be: "); //$NON-NLS-1$
-			stringBuffer.append(VisibilityModifiers.getVisibilityName(vis));
-			stringBuffer.append(" "); //$NON-NLS-1$
-			stringBuffer.append(RestrictionModifiers.getRestrictionText(res));
-			System.out.println(stringBuffer.toString());
+			StringBuilder buffer = new StringBuilder();
+			buffer.append("Resolved annotations for manifest node: "); //$NON-NLS-1$
+			buffer.append(node);
+			buffer.append(" to be: "); //$NON-NLS-1$
+			buffer.append(VisibilityModifiers.getVisibilityName(vis));
+			buffer.append(" "); //$NON-NLS-1$
+			buffer.append(RestrictionModifiers.getRestrictionText(res));
+			System.out.println(buffer.toString());
 		}
 		return new ApiAnnotations(vis, res);
 	}
@@ -528,7 +528,7 @@
 			vis = VisibilityModifiers.API;
 		}
 		if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Creating new manifest node for element: "); //$NON-NLS-1$
 			buffer.append(element);
 			buffer.append(" and adding it to parent node: "); //$NON-NLS-1$
@@ -543,7 +543,7 @@
 		ManifestNode node = findNode(element, true);
 		if (node != null) {
 			if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append("Setting restrictions for manifest node: "); //$NON-NLS-1$
 				buffer.append(node);
 				buffer.append(" to be "); //$NON-NLS-1$
@@ -562,7 +562,7 @@
 		ManifestNode node = findNode(element, true);
 		if (node != null) {
 			if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append("Setting visibility for manifest node: "); //$NON-NLS-1$
 				buffer.append(node);
 				buffer.append(" to be "); //$NON-NLS-1$
@@ -603,7 +603,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("API description for component: ").append(fOwningComponentId); //$NON-NLS-1$
 		return buffer.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiJavadocTag.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiJavadocTag.java
index 6c9de79..17709b4 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiJavadocTag.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiJavadocTag.java
@@ -99,7 +99,7 @@
 	@Override
 	public String getTagName() {
 		if (fTaglabel == null) {
-			StringBuffer tag = new StringBuffer();
+			StringBuilder tag = new StringBuilder();
 			tag.append("@"); //$NON-NLS-1$
 			tag.append(fName);
 			fTaglabel = tag.toString();
@@ -114,7 +114,7 @@
 
 	@Override
 	public String getCompleteTag(int type, int member) {
-		StringBuffer tag = new StringBuffer();
+		StringBuilder tag = new StringBuilder();
 		tag.append(getTagName());
 		String comment = getTagComment(type, member);
 		if (EMPTY_STRING.equals(comment)) {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java
index cf81343..f87bb7e 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java
@@ -137,7 +137,7 @@
 
 		@Override
 		public String toString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			String name = ((IPackageDescriptor) element).getName();
 			buffer.append("Package Node: ").append(name.equals("") ? "<default package>" : name); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			buffer.append("\nVisibility: ").append(VisibilityModifiers.getVisibilityName(visibility)); //$NON-NLS-1$
@@ -190,7 +190,7 @@
 		protected synchronized ManifestNode refresh() {
 			if (fRefreshing) {
 				if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-					StringBuffer buffer = new StringBuffer();
+					StringBuilder buffer = new StringBuilder();
 					buffer.append("Refreshing manifest node: "); //$NON-NLS-1$
 					buffer.append(this);
 					buffer.append(" aborted because a refresh is already in progress"); //$NON-NLS-1$
@@ -209,7 +209,7 @@
 							resource = unit.getUnderlyingResource();
 						} catch (JavaModelException e) {
 							if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-								StringBuffer buffer = new StringBuffer();
+								StringBuilder buffer = new StringBuilder();
 								buffer.append("Failed to get underlying resource for compilation unit: "); //$NON-NLS-1$
 								buffer.append(unit);
 								System.out.println(buffer.toString());
@@ -228,7 +228,7 @@
 								visitType(this, visitor);
 								long crc = visitor.getValue();
 								if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-									StringBuffer buffer = new StringBuffer();
+									StringBuilder buffer = new StringBuilder();
 									buffer.append("Resource has changed for type manifest node: "); //$NON-NLS-1$
 									buffer.append(this);
 									buffer.append(" tag scanning the new type"); //$NON-NLS-1$
@@ -254,7 +254,7 @@
 									// update relative build time stamp
 									fBuildStamp = BuildStamps.getBuildStamp(resource.getProject());
 									if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-										StringBuffer buffer = new StringBuffer();
+										StringBuilder buffer = new StringBuilder();
 										buffer.append("CRC changed for type manifest node: "); //$NON-NLS-1$
 										buffer.append(this);
 										buffer.append(" (CRC "); //$NON-NLS-1$
@@ -266,7 +266,7 @@
 							}
 						} else {
 							if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-								StringBuffer buffer = new StringBuffer();
+								StringBuilder buffer = new StringBuilder();
 								buffer.append("Underlying resource for the type manifest node: "); //$NON-NLS-1$
 								buffer.append(this);
 								buffer.append(" does not exist or is null"); //$NON-NLS-1$
@@ -279,7 +279,7 @@
 						}
 					} else {
 						if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-							StringBuffer buffer = new StringBuffer();
+							StringBuilder buffer = new StringBuilder();
 							buffer.append("Failed to look up compilation unit for "); //$NON-NLS-1$
 							buffer.append(fType);
 							buffer.append(" refreshing type manifest node: "); //$NON-NLS-1$
@@ -311,7 +311,7 @@
 
 		@Override
 		public String toString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Type Node: ").append(fType.getFullyQualifiedName()); //$NON-NLS-1$
 			buffer.append("\nVisibility: ").append(VisibilityModifiers.getVisibilityName(visibility)); //$NON-NLS-1$
 			buffer.append("\nRestrictions: ").append(RestrictionModifiers.getRestrictionText(restrictions)); //$NON-NLS-1$
@@ -554,7 +554,7 @@
 	synchronized void refreshPackages() {
 		if (fRefreshingInProgress) {
 			if (ApiPlugin.DEBUG_API_DESCRIPTION) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append("Refreshing manifest node: "); //$NON-NLS-1$
 				buffer.append(this);
 				buffer.append(" aborted because a refresh is already in progress"); //$NON-NLS-1$
@@ -719,7 +719,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Project API description for: ").append(getJavaProject().getElementName()); //$NON-NLS-1$
 		return buffer.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/RequiredComponentDescription.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/RequiredComponentDescription.java
index 698f58f..e6271fa 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/RequiredComponentDescription.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/RequiredComponentDescription.java
@@ -90,7 +90,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append(fId);
 		buf.append(' ');
 		buf.append(fRange.toString());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java
index fc25605..f68d6b7 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java
@@ -966,7 +966,7 @@
 	 * @return a single string attribute from an array or arguments
 	 */
 	String createArgAttribute(String[] args) {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		for (int i = 0; i < args.length; i++) {
 			buff.append(args[i]);
 			if (i < args.length - 1) {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java
index 7f3daf0..1f234ab 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/BaseApiAnalyzer.java
@@ -187,7 +187,7 @@
 			ResolverError[] errors = component.getErrors();
 			if (errors != null) {
 				// check if all errors have a constraint
-				StringBuffer buffer = null;
+				StringBuilder buffer = null;
 				for (int i = 0, max = errors.length; i < max; i++) {
 					ResolverError error = errors[i];
 					VersionConstraint constraint = error.getUnsatisfiedConstraint();
@@ -196,7 +196,7 @@
 					}
 					VersionRange versionRange = constraint.getVersionRange();
 					if (buffer == null) {
-						buffer = new StringBuffer();
+						buffer = new StringBuilder();
 					}
 					if (i > 0) {
 						buffer.append(',').append(' ');
@@ -1562,7 +1562,7 @@
 						}
 						return;
 					}
-					StringBuffer buffer = new StringBuffer();
+					StringBuilder buffer = new StringBuilder();
 					Version componentVersion = new Version(componentVersionString);
 					buffer.append(componentVersion.getMajor()).append('.').append(componentVersion.getMinor());
 					problem = createSinceTagProblem(IApiProblem.SINCE_TAG_MISSING, new String[] { Util.getDeltaArgumentString(delta) }, delta, member, String.valueOf(buffer));
@@ -1579,7 +1579,7 @@
 								}
 								return;
 							}
-							StringBuffer buffer = new StringBuffer();
+							StringBuilder buffer = new StringBuilder();
 							if (tagVersion.prefixString() != null) {
 								buffer.append(tagVersion.prefixString());
 							}
@@ -1598,13 +1598,13 @@
 								}
 								return;
 							}
-							StringBuffer accurateVersionBuffer = new StringBuffer();
+							StringBuilder accurateVersionBuffer = new StringBuilder();
 							Version componentVersion = new Version(componentVersionString);
 							accurateVersionBuffer.append(componentVersion.getMajor()).append('.').append(componentVersion.getMinor());
 							String accurateVersion = String.valueOf(accurateVersionBuffer);
 							if (Util.isDifferentVersion(sinceVersion, accurateVersion)) {
 								// report invalid version number
-								StringBuffer buffer = new StringBuffer();
+								StringBuilder buffer = new StringBuilder();
 								if (tagVersion.prefixString() != null) {
 									buffer.append(tagVersion.prefixString());
 								}
@@ -1693,7 +1693,7 @@
 					int length = messageargs.length;
 					messageArguments = new String[length];
 					System.arraycopy(messageargs, 0, messageArguments, 0, length);
-					StringBuffer buffer = new StringBuffer();
+					StringBuilder buffer = new StringBuilder();
 					buffer.append(qtn).append('.').append(messageargs[length - 1]);
 					messageArguments[length - 1] = String.valueOf(buffer);
 				} else {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Reference.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Reference.java
index 27766ac..76aae7e 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Reference.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Reference.java
@@ -609,7 +609,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append("From: "); //$NON-NLS-1$
 		IApiMember member = getMember();
 		buf.append(member.getHandle().toString());
@@ -647,7 +647,7 @@
 	 * @since 1.0.1
 	 */
 	public static final String getReferenceText(int kind) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		if ((kind & IReference.REF_EXTENDS) > 0) {
 			buffer.append("EXTENDS"); //$NON-NLS-1$
 		}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java
index 48c3e0c..0d1edc4 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java
@@ -477,7 +477,7 @@
 
 		@Override
 		public String toString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Method visitor for: "); //$NON-NLS-1$
 			buffer.append(methodName);
 			buffer.append("\nCurrent line number: "); //$NON-NLS-1$
@@ -823,7 +823,7 @@
 
 		@Override
 		public String toString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append('(').append(this.label).append(',').append(this.location).append(')');
 			return String.valueOf(buffer);
 		}
@@ -859,7 +859,7 @@
 
 		@Override
 		public String toString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append('(').append(this.line).append(',').append(this.label).append(')');
 			return String.valueOf(buffer);
 		}
@@ -1010,7 +1010,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Reference extractor for: "); //$NON-NLS-1$
 		buffer.append(fType.getName());
 		buffer.append("\n"); //$NON-NLS-1$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceResolver.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceResolver.java
index 5c0e0c9..f7719fa 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceResolver.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceResolver.java
@@ -119,7 +119,7 @@
 	 * @return a string key for the given reference.
 	 */
 	private static String createSignatureKey(IReference reference) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(reference.getMember().getApiComponent().getSymbolicName());
 		buffer.append("#"); //$NON-NLS-1$
 		buffer.append(reference.getReferencedTypeName());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/SystemApiDetector.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/SystemApiDetector.java
index 56b26fb..faea05d 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/SystemApiDetector.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/SystemApiDetector.java
@@ -130,7 +130,7 @@
 		}
 		switch (member.getType()) {
 			case IApiElement.FIELD: {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				IApiField field = (IApiField) member;
 				buffer.append(typeName).append('.').append(field.getName());
 				return String.valueOf(buffer);
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TypeScope.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TypeScope.java
index a688276..900be29 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TypeScope.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/TypeScope.java
@@ -119,7 +119,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("*** Type Search Scope ***\n"); //$NON-NLS-1$
 		buffer.append("Component: ").append(fComponent); //$NON-NLS-1$
 		if (fPackageToTypes != null) {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Validator.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Validator.java
index a869a18..f91f9ed 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Validator.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/Validator.java
@@ -142,7 +142,7 @@
 	 * @return the fully qualified name of the enclosing type
 	 */
 	protected String getTypeName(ASTNode node) {
-		return getTypeName(node, new StringBuffer());
+		return getTypeName(node, new StringBuilder());
 	}
 
 	/**
@@ -152,7 +152,7 @@
 	 * @param buffer the buffer to write the name into
 	 * @return the fully qualified name of the parent
 	 */
-	protected String getTypeName(ASTNode node, StringBuffer buffer) {
+	protected String getTypeName(ASTNode node, StringBuilder buffer) {
 		switch (node.getNodeType()) {
 			case ASTNode.COMPILATION_UNIT: {
 				CompilationUnit unit = (CompilationUnit) node;
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/ClassFileComparator.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/ClassFileComparator.java
index 0196cc1..290b2d7 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/ClassFileComparator.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/ClassFileComparator.java
@@ -784,11 +784,11 @@
 				}
 				return member.getName();
 			case IApiElement.METHOD:
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append(type.getName()).append('.').append(getMethodDisplayName((IApiMethod) member, type));
 				return String.valueOf(buffer);
 			case IApiElement.FIELD:
-				buffer = new StringBuffer();
+				buffer = new StringBuilder();
 				buffer.append(type.getName()).append('.').append(member.getName());
 				return String.valueOf(buffer);
 			default:
@@ -2259,7 +2259,7 @@
 	}
 
 	private String getKeyForMethod(IApiMethod method, IApiType type) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		if (method.isConstructor()) {
 			String name = type.getName();
 			int index = name.lastIndexOf('.');
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/SignatureDescriptor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/SignatureDescriptor.java
index 299e055..a2647af 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/SignatureDescriptor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/SignatureDescriptor.java
@@ -90,7 +90,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		for (int i = 0, max = this.typeParameterDescriptorsCounter; i < max; i++) {
 			if (i > 0) {
 				buffer.append(',');
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/TypeParameterDescriptor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/TypeParameterDescriptor.java
index fc41a7e..e150254 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/TypeParameterDescriptor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/comparator/TypeParameterDescriptor.java
@@ -46,7 +46,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("type parameter ").append(this.name).append(" : ").append(Util.LINE_DELIMITER); //$NON-NLS-1$ //$NON-NLS-2$
 		if (this.classBound != null) {
 			buffer.append("class bound : ").append(this.classBound).append(Util.LINE_DELIMITER); //$NON-NLS-1$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/FieldDescriptorImpl.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/FieldDescriptorImpl.java
index 0255c0e..6d3f1c6 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/FieldDescriptorImpl.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/FieldDescriptorImpl.java
@@ -34,7 +34,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(getEnclosingType().getQualifiedName());
 		buffer.append("#"); //$NON-NLS-1$
 		buffer.append(getName());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/MethodDescriptorImpl.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/MethodDescriptorImpl.java
index 71e7102..33d8b51 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/MethodDescriptorImpl.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/MethodDescriptorImpl.java
@@ -41,7 +41,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(getEnclosingType().getQualifiedName());
 		buffer.append("#"); //$NON-NLS-1$
 		buffer.append(Signature.toString(getSignature(), getName(), null, true, true));
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/ReferenceTypeDescriptorImpl.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/ReferenceTypeDescriptorImpl.java
index f81736a..1ab703d 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/ReferenceTypeDescriptorImpl.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/descriptors/ReferenceTypeDescriptorImpl.java
@@ -87,7 +87,7 @@
 	@Override
 	public synchronized String getQualifiedName() {
 		if (fFullName == null) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(getPackage().getName());
 			if (buffer.length() > 0) {
 				buffer.append('.');
@@ -146,7 +146,7 @@
 	@Override
 	public String getSignature() {
 		if (fSignature == null) {
-			StringBuffer buf = new StringBuffer();
+			StringBuilder buf = new StringBuilder();
 			buf.append('L');
 			buf.append(getQualifiedName());
 			buf.append(';');
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiField.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiField.java
index f027b7e..38b3357 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiField.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiField.java
@@ -80,7 +80,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Field : access(") //$NON-NLS-1$
 		.append(getModifiers()).append(") ") //$NON-NLS-1$
 		.append(getSignature()).append(' ').append(getName()).append(" isEnum constant ") //$NON-NLS-1$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiMethod.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiMethod.java
index a9e137c..420771e 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiMethod.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiMethod.java
@@ -118,7 +118,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Method : access(") //$NON-NLS-1$
 		.append(getModifiers()).append(") ") //$NON-NLS-1$
 		.append(getSignature()).append(' ').append(getName());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiModelCache.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiModelCache.java
index fc6639a..0952faf 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiModelCache.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiModelCache.java
@@ -94,7 +94,7 @@
 	 * @return the member type cache key to use
 	 */
 	private String getCacheKey(String baseline, String component, String typename) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(baseline).append('.').append(component).append('.').append(typename);
 		return buffer.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java
index 54d0cb2..bcf6164 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ApiType.java
@@ -485,7 +485,7 @@
 			IApiTypeRoot file = fMemberTypes.get(simpleName);
 			if (file == null) {
 				// resolve
-				StringBuffer qName = new StringBuffer();
+				StringBuilder qName = new StringBuilder();
 				qName.append(getName());
 				qName.append('$');
 				qName.append(simpleName);
@@ -521,7 +521,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Type : access(") //$NON-NLS-1$
 		.append(getModifiers()).append(") ") //$NON-NLS-1$
 		.append(getName());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ArchiveApiTypeContainer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ArchiveApiTypeContainer.java
index 0cfe25e..cc83bae 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ArchiveApiTypeContainer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ArchiveApiTypeContainer.java
@@ -205,7 +205,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		buff.append("Archive Class File Container: " + getName()); //$NON-NLS-1$
 		return buff.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/BundleComponent.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/BundleComponent.java
index 4686abc..df56413 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/BundleComponent.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/BundleComponent.java
@@ -904,7 +904,7 @@
 	 */
 	protected URL getFileInBundle(File bundleLocation, String filePath) throws MalformedURLException {
 		String extension = new Path(bundleLocation.getName()).getFileExtension();
-		StringBuffer urlSt = new StringBuffer();
+		StringBuilder urlSt = new StringBuilder();
 		if (extension != null && extension.equals("jar") && bundleLocation.isFile()) { //$NON-NLS-1$
 			urlSt.append("jar:file:"); //$NON-NLS-1$
 			urlSt.append(bundleLocation.getAbsolutePath());
@@ -951,7 +951,7 @@
 	public synchronized String getVersion() {
 		init();
 		// remove the qualifier
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(fVersion.getMajor()).append('.').append(fVersion.getMinor()).append('.').append(fVersion.getMicro());
 		return String.valueOf(buffer);
 	}
@@ -979,7 +979,7 @@
 	public String toString() {
 		if (fBundleDescription != null) {
 			try {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append(fBundleDescription.toString());
 				buffer.append(" - "); //$NON-NLS-1$
 				buffer.append("[fragment: ").append(isFragment()).append("] "); //$NON-NLS-1$ //$NON-NLS-2$
@@ -991,7 +991,7 @@
 			} catch (CoreException ce) {
 			}
 		} else {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Un-initialized Bundle Component"); //$NON-NLS-1$
 			buffer.append("[location: ").append(fLocation).append("]"); //$NON-NLS-1$ //$NON-NLS-2$
 			buffer.append("[dev bundle: ").append(fWorkspaceBinary).append("]"); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/CompositeApiTypeContainer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/CompositeApiTypeContainer.java
index 93a9bee..a550a19 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/CompositeApiTypeContainer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/CompositeApiTypeContainer.java
@@ -46,7 +46,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		buff.append("Composite Class File Container:\n"); //$NON-NLS-1$
 		if (fContainers == null) {
 			buff.append("\t<EMPTY>"); //$NON-NLS-1$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/DirectoryApiTypeContainer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/DirectoryApiTypeContainer.java
index d2f3387..46409c8 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/DirectoryApiTypeContainer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/DirectoryApiTypeContainer.java
@@ -173,7 +173,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		buff.append("Directory Class File Container: " + getName()); //$NON-NLS-1$
 		return buff.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/MethodKey.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/MethodKey.java
index 36bea35..08d5ecd 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/MethodKey.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/MethodKey.java
@@ -75,7 +75,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buf = new StringBuffer();
+		StringBuilder buf = new StringBuilder();
 		buf.append("Method Key: [enclosing type - ").append(fTypename).append("] "); //$NON-NLS-1$ //$NON-NLS-2$
 		buf.append("[method name - ").append(fSelector).append("] "); //$NON-NLS-1$ //$NON-NLS-2$
 		buf.append("[signature - ").append(fSig).append("] "); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ProjectTypeContainer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ProjectTypeContainer.java
index f9f621b..8879ebd 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ProjectTypeContainer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/ProjectTypeContainer.java
@@ -109,7 +109,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		buff.append("Project Class File Container: " + getName()); //$NON-NLS-1$
 		return buff.toString();
 	}
@@ -136,7 +136,7 @@
 						String name = file.getName();
 						String typeName = name.substring(0, name.length() - 6);
 						if (pkgName.length() > 0) {
-							StringBuffer buf = new StringBuffer(pkgName);
+							StringBuilder buf = new StringBuilder(pkgName);
 							buf.append('.');
 							buf.append(typeName);
 							typeName = buf.toString();
@@ -156,7 +156,7 @@
 			if (pkgName.length() == 0) {
 				nextName = child.getName();
 			} else {
-				StringBuffer buffer = new StringBuffer(pkgName);
+				StringBuilder buffer = new StringBuilder(pkgName);
 				buffer.append('.');
 				buffer.append(child.getName());
 				nextName = buffer.toString();
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/StubArchiveApiTypeContainer.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/StubArchiveApiTypeContainer.java
index dbab92a..232ecac 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/StubArchiveApiTypeContainer.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/StubArchiveApiTypeContainer.java
@@ -192,7 +192,7 @@
 	 */
 	@Override
 	public String toString() {
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		buff.append("Archive Class File Container: " + getName()); //$NON-NLS-1$
 		return buff.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java
index 454cd72..d5de642 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/TypeStructureBuilder.java
@@ -61,7 +61,7 @@
 
 	@Override
 	public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
-		StringBuffer simpleSig = new StringBuffer();
+		StringBuilder simpleSig = new StringBuilder();
 		simpleSig.append('L');
 		simpleSig.append(name);
 		simpleSig.append(';');
@@ -181,7 +181,7 @@
 	static class AnnotationDefaultVisitor extends AnnotationVisitor {
 		ApiMethod method;
 		Object value;
-		StringBuffer buff = new StringBuffer();
+		StringBuilder buff = new StringBuilder();
 		boolean trace = false;
 		int traceCount = 0;
 
@@ -392,7 +392,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Type structure builder for: ").append(fType.getName()); //$NON-NLS-1$
 		buffer.append("\nBacked by file: ").append(fFile.getName()); //$NON-NLS-1$
 		return buffer.toString();
@@ -420,7 +420,7 @@
 			}
 			int classIndex = inputStream.readShort();
 			String name = pool.get(Integer.valueOf(classIndex));
-			StringBuffer simpleSig = new StringBuffer();
+			StringBuilder simpleSig = new StringBuilder();
 			simpleSig.append('L');
 			simpleSig.append(name);
 			simpleSig.append(';');
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblem.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblem.java
index 3301e3e..f309bef 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblem.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblem.java
@@ -275,7 +275,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("API problem: "); //$NON-NLS-1$
 		buffer.append(fResourcePath != null ? fResourcePath : "no path").append("\n"); //$NON-NLS-1$//$NON-NLS-2$
 		buffer.append("\tseverity: "); //$NON-NLS-1$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblemFilter.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblemFilter.java
index 43f5c17..6032ed5 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblemFilter.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/problems/ApiProblemFilter.java
@@ -97,7 +97,7 @@
 
 	@Override
 	public String toString() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("Filter for : "); //$NON-NLS-1$
 		buffer.append(fProblem.toString());
 		return buffer.toString();
@@ -117,7 +117,7 @@
 	 * @return returns a handle that can be used to identify the filter
 	 */
 	public String getHandle() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(fProblem.getId());
 		buffer.append(HANDLE_DELIMITER);
 		buffer.append(fProblem.getResourcePath());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/ApiPlugin.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/ApiPlugin.java
index 793dcce..3656eb1 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/ApiPlugin.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/ApiPlugin.java
@@ -668,7 +668,7 @@
 	 *         symbolic names contain {@link #EE_DESCRIPTION_PREFIX}
 	 */
 	private String getListOfEEFragments(Bundle[] allFragments) {
-		StringBuffer result = new StringBuffer();
+		StringBuilder result = new StringBuilder();
 		for (Bundle allFragment : allFragments) {
 			if (allFragment.getSymbolicName().indexOf(EE_DESCRIPTION_PREFIX) >= 0) {
 				result.append(allFragment.getSymbolicName());
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/RestrictionModifiers.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/RestrictionModifiers.java
index 5395f44..9be7d9b 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/RestrictionModifiers.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/provisional/RestrictionModifiers.java
@@ -134,7 +134,7 @@
 	 * @since 1.0.1
 	 */
 	public static String getRestrictionText(int restrictions) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		if (restrictions == NO_RESTRICTIONS) {
 			return "NO_RESTRICTIONS"; //$NON-NLS-1$
 		}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/ConsumerReportConvertor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/ConsumerReportConvertor.java
index 2a040d5..972f713 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/ConsumerReportConvertor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/ConsumerReportConvertor.java
@@ -399,7 +399,7 @@
 		 */
 		private String formatMessages(String[] messages) {
 			if (messages != null) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				for (int i = 0; i < messages.length; i++) {
 					buffer.append(messages[i]);
 					if (i < messages.length - 1) {
@@ -497,7 +497,7 @@
 			}
 			setReportIndex(reportIndex);
 
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			writeMetadataHeaders(buffer);
@@ -585,7 +585,7 @@
 			if (!originhtml.exists()) {
 				originhtml.createNewFile();
 			}
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			buffer.append(REF_STYLE);
@@ -651,7 +651,7 @@
 			if (!originhtml.exists()) {
 				originhtml.createNewFile();
 			}
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			buffer.append(REF_STYLE);
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/HTMLConvertor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/HTMLConvertor.java
index b183daf..52924e6 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/HTMLConvertor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/HTMLConvertor.java
@@ -167,7 +167,7 @@
 	 * @return a new open <code>&lt;td&gt;</code> tag
 	 */
 	public static String openTD(int width) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("<td width=\"").append(width).append("%\">"); //$NON-NLS-1$//$NON-NLS-2$
 		return buffer.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MigrationReportConvertor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MigrationReportConvertor.java
index f2ec1ad..11edd13 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MigrationReportConvertor.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MigrationReportConvertor.java
@@ -76,7 +76,7 @@
 
 	@Override
 	protected String getTypeCountSummary(String typename, CountGroup counts, int membercount) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_H4).append(SearchMessages.UseReportConverter_summary).append(CLOSE_H4);
 		buffer.append(OPEN_P).append(NLS.bind(SearchMessages.MigrationReportConvertor_member_has_unresolved_refs, new String[] {
 				typename, Integer.toString(counts.getTotalRefCount()),
@@ -87,7 +87,7 @@
 	@Override
 	protected String getAdditionalIndexInfo(boolean hasreports) {
 		if (hasreports) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(SearchMessages.MigrationReportConvertor_bundles_have_references);
 			return buffer.toString();
 		}
@@ -96,7 +96,7 @@
 
 	@Override
 	protected String getNoReportsInformation() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_P).append(BR).append(SearchMessages.MigrationReportConvertor_no_reported_migration_problems).append(CLOSE_P);
 		return buffer.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MissingRefReportConverter.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MissingRefReportConverter.java
index 1ab8bcc..e6ae39f 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MissingRefReportConverter.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/MissingRefReportConverter.java
@@ -60,7 +60,7 @@
 			if (version == null) {
 				versionName = Version.emptyVersion.toString();
 			}
-			StringBuffer buffer = new StringBuffer(3 + id.length() + versionName.length());
+			StringBuilder buffer = new StringBuilder(3 + id.length() + versionName.length());
 			buffer.append(id).append(" (").append(versionName).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
 			return buffer.toString();
 		}
@@ -85,7 +85,7 @@
 				if (!originhtml.exists()) {
 					originhtml.createNewFile();
 				}
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				buffer.append(HTML_HEADER);
 				buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 				buffer.append(REF_STYLE);
@@ -96,9 +96,9 @@
 				buffer.append(OPEN_H3).append(getProblemTitle(report.name)).append(CLOSE_H3);
 				buffer.append(getProblemSummary(report));
 
-				StringBuffer typeProblems = new StringBuffer();
-				StringBuffer methodProblems = new StringBuffer();
-				StringBuffer fieldProblems = new StringBuffer();
+				StringBuilder typeProblems = new StringBuilder();
+				StringBuilder methodProblems = new StringBuilder();
+				StringBuilder fieldProblems = new StringBuilder();
 				Integer key = null;
 				TreeMap<String, List<IApiProblem>> types = null;
 				for (Entry<Integer, TreeMap<String, List<IApiProblem>>> entry : report.apiProblems.entrySet()) {
@@ -147,8 +147,8 @@
 			}
 		}
 
-		private StringBuffer getProblemRow(StringBuffer type, String header) {
-			StringBuffer buffer = new StringBuffer();
+		private StringBuilder getProblemRow(StringBuilder type, String header) {
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(OPEN_TR);
 			buffer.append("<td align=\"left\">\n"); //$NON-NLS-1$
 			buffer.append(OPEN_B);
@@ -163,8 +163,8 @@
 			return buffer;
 		}
 
-		private StringBuffer getProblemTable(TreeMap<String, List<IApiProblem>> types) {
-			StringBuffer buffer = new StringBuffer();
+		private StringBuilder getProblemTable(TreeMap<String, List<IApiProblem>> types) {
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"6\">\n"); //$NON-NLS-1$
 			String tname = null;
 			List<IApiProblem> pbs = null;
@@ -186,7 +186,7 @@
 		}
 
 		private Object getProblemSummary(Report report) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(OPEN_H4).append(SearchMessages.MissingRefReportConverter_Summary).append(CLOSE_H4);
 			buffer.append(OPEN_P).append(NLS.bind(SearchMessages.MissingRefReportConverter_SummaryDesc, new String[] {
 					report.name, Integer.toString(report.apiProblems.size()) })).append(CLOSE_P);
@@ -201,7 +201,7 @@
 		 * @return the default references table header
 		 */
 		String getProblemsTableHeader(String sectionname, String type) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(OPEN_H4).append(sectionname).append(CLOSE_H4);
 			buffer.append(OPEN_P).append(SearchMessages.MissingRefReportConverter_ProblemTableHeader).append(CLOSE_P);
 			buffer.append("<div align=\"left\" class=\"main\">"); //$NON-NLS-1$
@@ -357,7 +357,7 @@
 			}
 			// setReportIndex(reportIndex);
 
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			writeMetadataHeaders(buffer);
@@ -415,7 +415,7 @@
 
 	@Override
 	protected String getNoReportsInformation() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_P).append(BR).append(SearchMessages.no_use_scan_ref_problems).append(CLOSE_P);
 		return buffer.toString();
 	}
@@ -428,7 +428,7 @@
 	 * @return a single reference table entry
 	 */
 	private Object getReferenceTableEntry(Report report, String link) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_TR);
 		buffer.append("<td><b><a href=\"").append(link).append("\">").append(getBundleOnlyName(report.name)).append("</a>").append(CLOSE_B).append(CLOSE_TD); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		buffer.append("\t<td align=\"left\">").append(getVersion(report.name)).append(CLOSE_TD); //$NON-NLS-1$
@@ -440,8 +440,8 @@
 		return buffer.toString();
 	}
 
-	private StringBuffer getProblemSummaryTable() {
-		StringBuffer buffer = new StringBuffer();
+	private StringBuilder getProblemSummaryTable() {
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_H4).append(SearchMessages.MissingRefReportConverter_ProblemSummaryTitle).append(CLOSE_H4);
 		buffer.append(OPEN_P).append(SearchMessages.MissingRefReportConverter_ProblemSummary).append(CLOSE_P);
 		buffer.append("<table border=\"1\" width=\"80%\">\n"); //$NON-NLS-1$
@@ -473,7 +473,7 @@
 	}
 
 	@Override
-	void writeMetadataSummary(StringBuffer buffer) throws Exception {
+	void writeMetadataSummary(StringBuilder buffer) throws Exception {
 		MissingRefMetadata metadata = (MissingRefMetadata) getMetadata();
 		buffer.append(OPEN_H4).append(SearchMessages.MissingRefReportConverter_MetadataTitle).append(CLOSE_H4);
 		buffer.append("<table border=\"0px\" title=\"").append(SearchMessages.MissingRefReportConverter_MetadataTableTitle).append("\"width=\"50%\">"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -524,7 +524,7 @@
 	}
 
 	@Override
-	protected void writeMetadataHeaders(StringBuffer buffer) {
+	protected void writeMetadataHeaders(StringBuilder buffer) {
 		buffer.append("<meta name=\"").append("description").append("\" content=\"").append(SearchMessages.MissingRefReportConverter_IndexMetaTag).append("\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 	}
 
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/SkippedComponent.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/SkippedComponent.java
index 5132b6b..df04ccc 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/SkippedComponent.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/SkippedComponent.java
@@ -169,7 +169,7 @@
 	 */
 	public String getErrorDetails() {
 		if (this.errors != null) {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			String[] problems = resolveRootErrors(this.errors);
 			for (String problem : problems) {
 				buffer.append(problem).append("<br/>"); //$NON-NLS-1$
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseReportConverter.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseReportConverter.java
index 0cef6cd..18d60e5 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseReportConverter.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseReportConverter.java
@@ -228,7 +228,7 @@
 		 */
 		String formatMessages(String[] messages) {
 			if (messages != null) {
-				StringBuffer buffer = new StringBuffer();
+				StringBuilder buffer = new StringBuilder();
 				for (int i = 0; i < messages.length; i++) {
 					buffer.append(messages[i]);
 					if (i < messages.length - 1) {
@@ -583,7 +583,7 @@
 	static final String REF_SCRIPT;
 
 	static {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("<style type=\"text/css\">\n"); //$NON-NLS-1$
 		buffer.append("\t.main {\t\tfont-family:Arial, Helvetica, sans-serif;\n\t}\n"); //$NON-NLS-1$
 		buffer.append("\t.main h3 {\n\t\tfont-family:Arial, Helvetica, sans-serif;\n\t\t\background-color:#FFFFFF;\n\t\tfont-size:14px;\n\t\tmargin:0.1em;\n\t}\n"); //$NON-NLS-1$
@@ -595,7 +595,7 @@
 		buffer.append("</style>\n"); //$NON-NLS-1$
 		REF_STYLE = buffer.toString();
 
-		buffer = new StringBuffer();
+		buffer = new StringBuilder();
 		buffer.append("<script type=\"text/javascript\">\n\tfunction expand(location) {\n\t\tif(document.getElementById) {\n\t\t\tvar childhtml = location.firstChild;\n\t\t\tif(!childhtml.innerHTML) {\n\t\t\t\tchildhtml = childhtml.nextSibling;\n\t\t\t}\n\t\t\tchildhtml.innerHTML = childhtml.innerHTML == '[+] ' ? '[-] ' : '[+] ';\n\t\t\tvar parent = location.parentNode;\n\t\t\tchildhtml = parent.nextSibling.style ? parent.nextSibling : parent.nextSibling.nextSibling;\n\t\t\tchildhtml.style.display = childhtml.style.display == 'block' ? 'none' : 'block';\n\t\t}\n\t}\n</script>\n"); //$NON-NLS-1$
 		buffer.append("<noscript>\n\t<style type=\"text/css\">\n\t\t.types {display:block;}\n\t\t.kinds{display:block;}\n\t</style>\n</noscript>\n"); //$NON-NLS-1$
 		REF_SCRIPT = buffer.toString();
@@ -799,7 +799,7 @@
 		if (version == null) {
 			versionName = Version.emptyVersion.toString();
 		}
-		StringBuffer buffer = new StringBuffer(3 + id.length() + versionName.length());
+		StringBuilder buffer = new StringBuilder(3 + id.length() + versionName.length());
 		buffer.append(id).append(" (").append(versionName).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
 		return buffer.toString();
 	}
@@ -914,7 +914,7 @@
 	protected String getNameFromXMLFilename(File xmlFile) {
 		String fileName = xmlFile.getAbsolutePath();
 		int index = fileName.lastIndexOf('.');
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(fileName.substring(getReportsRoot().getAbsolutePath().length(), index)).append(HTML_EXTENSION);
 		File htmlFile = new File(getHtmlLocation(), String.valueOf(buffer));
 		return htmlFile.getAbsolutePath();
@@ -979,7 +979,7 @@
 			if (!meta.exists()) {
 				meta.createNewFile();
 			}
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			buffer.append(OPEN_TITLE).append(SearchMessages.UseReportConverter_use_scan_info).append(CLOSE_TITLE);
@@ -1032,7 +1032,7 @@
 					sorted.add(missingBundle);
 				}
 			}
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			buffer.append(OPEN_TITLE).append(SearchMessages.UseReportConverter_missing_required).append(CLOSE_TITLE);
@@ -1145,7 +1145,7 @@
 			if (!originhtml.exists()) {
 				originhtml.createNewFile();
 			}
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			buffer.append(REF_STYLE);
@@ -1267,7 +1267,7 @@
 	void writeTypePage(Map<IMemberDescriptor, Member> map, Type type, File typefile, String typename) throws Exception {
 		PrintWriter writer = null;
 		try {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			buffer.append(REF_STYLE);
@@ -1353,7 +1353,7 @@
 	 * @return the nested table of references as a string
 	 */
 	String getReferencesTable(Member member) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"6\">\n"); //$NON-NLS-1$
 		List<Reference> refs = null;
 		Reference ref = null;
@@ -1442,7 +1442,7 @@
 	 * @return link text pruned via the given root file
 	 */
 	String extractLinkFrom(File root, String fileName) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		String substring = fileName.substring(root.getAbsolutePath().length()).replace('\\', '/');
 		buffer.append('.');
 		if (substring.charAt(0) != '/') {
@@ -1484,7 +1484,7 @@
 			}
 			setReportIndex(reportIndex);
 
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append(HTML_HEADER);
 			buffer.append(OPEN_HTML).append(OPEN_HEAD).append(CONTENT_TYPE_META);
 			writeMetadataHeaders(buffer);
@@ -1559,7 +1559,7 @@
 	 * @since 1.1
 	 */
 	protected String getColourLegend() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_P);
 		buffer.append("<table width=\"20%\" border=\"1\">"); //$NON-NLS-1$
 		buffer.append(OPEN_TR);
@@ -1579,7 +1579,7 @@
 	 * @return the string to write if there are no reported bundles
 	 */
 	protected String getNoReportsInformation() {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_P).append(BR).append(SearchMessages.UseReportConverter_no_reported_usage).append(CLOSE_P);
 		return buffer.toString();
 	}
@@ -1591,7 +1591,7 @@
 	 * @param buffer
 	 * @throws Exception
 	 */
-	void writeMetadataHeaders(StringBuffer buffer) throws Exception {
+	void writeMetadataHeaders(StringBuilder buffer) throws Exception {
 		writeMetaTag(buffer, "description", SearchMessages.UseReportConverter_root_index_description); //$NON-NLS-1$
 		// TODO could write metadata information here
 	}
@@ -1603,7 +1603,7 @@
 	 * @param buffer
 	 * @throws Exception
 	 */
-	void writeMetadataSummary(StringBuffer buffer) throws Exception {
+	void writeMetadataSummary(StringBuilder buffer) throws Exception {
 		buffer.append(OPEN_H4).append(SearchMessages.UseReportConverter_scan_details).append(CLOSE_H4);
 		if (this.metadata != null) {
 			buffer.append("<table border=\"0px\" title=\"").append(SearchMessages.UseReportConverter_scan_details).append("\"width=\"50%\">"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -1728,7 +1728,7 @@
 	}
 
 
-	void writeFilterCount(StringBuffer buffer) throws Exception {
+	void writeFilterCount(StringBuilder buffer) throws Exception {
 		boolean isAdditionFilterProvided = this.metadata.getAdditionalfilters() != null && !this.metadata.getAdditionalfilters().isEmpty();
 
 		if (this.filteredCount != -1 && isAdditionFilterProvided) {
@@ -1888,7 +1888,7 @@
 	 * @param buffer
 	 * @param description
 	 */
-	void writeMetaTag(StringBuffer buffer, String name, String content) {
+	void writeMetaTag(StringBuilder buffer, String name, String content) {
 		buffer.append("<meta name=\"").append(name).append("\" content=\"").append(content).append("\">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	}
 
@@ -1903,7 +1903,7 @@
 	 * @return the default references table header
 	 */
 	String getReferencesTableHeader(String sectionname, String columnname, boolean includeversion) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_H4).append(sectionname).append(CLOSE_H4);
 		buffer.append("<table border=\"1\" width=\"80%\">\n"); //$NON-NLS-1$
 		buffer.append(OPEN_TR);
@@ -1950,7 +1950,7 @@
 	 * @return a single reference table entry
 	 */
 	String getReferenceTableEntry(CountGroup counts, String link, String linktext, boolean includeversion) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("<tr bgcolor=\"").append(getRowColour(counts)).append("\">\n"); //$NON-NLS-1$//$NON-NLS-2$
 		buffer.append("\t<td><b><a href=\"").append(link).append("\">").append(getBundleOnlyName(linktext)).append("</a>").append(CLOSE_B).append(CLOSE_TD); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		if (includeversion) {
@@ -2015,7 +2015,7 @@
 	 * @return HTML as a string
 	 */
 	protected String getTypeCountSummary(String typename, CountGroup counts, int membercount) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(OPEN_H4).append(SearchMessages.UseReportConverter_summary).append(CLOSE_H4);
 		buffer.append(OPEN_P).append(NLS.bind(SearchMessages.UseReportConverter___has_total_refs, new String[] {
 				typename, Integer.toString(counts.getTotalRefCount()),
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlReferenceDescriptorWriter.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlReferenceDescriptorWriter.java
index da09f92..c827307 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlReferenceDescriptorWriter.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlReferenceDescriptorWriter.java
@@ -198,7 +198,7 @@
 	 * @throws CoreException
 	 */
 	String getId(IComponentDescriptor component) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(component.getId()).append(" ").append('(').append(component.getVersion()).append(')'); //$NON-NLS-1$
 		return buffer.toString();
 	}
@@ -509,7 +509,7 @@
 	 * @since 1.1
 	 */
 	String getText(Object[] array) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		for (int i = 0; i < array.length; i++) {
 			buffer.append(array[i].toString());
 			if (i < array.length - 1) {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlSearchReporter.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlSearchReporter.java
index 538a040..ba2f60e 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlSearchReporter.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/XmlSearchReporter.java
@@ -126,7 +126,7 @@
 	 * @throws CoreException
 	 */
 	String getId(IApiComponent component) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(component.getSymbolicName()).append(" ").append('(').append(component.getVersion()).append(')'); //$NON-NLS-1$
 		return buffer.toString();
 	}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java
index 625f236..fedb436 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java
@@ -73,7 +73,7 @@
 	@Override
 	public String toString() {
 		final String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append("==============================================================================").append(lineSeparator); //$NON-NLS-1$
 		printSet(buffer, this.exactMatches, "Exact matches:"); //$NON-NLS-1$
 		printSet(buffer, this.partialMatches, "Partial matches:"); //$NON-NLS-1$
@@ -81,7 +81,7 @@
 		return String.valueOf(buffer);
 	}
 
-	private void printSet(StringBuffer buffer, Set<String> set, String title) {
+	private void printSet(StringBuilder buffer, Set<String> set, String title) {
 		final String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
 		buffer.append(title).append(lineSeparator);
 		if (set != null) {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Signatures.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Signatures.java
index 214b41d..853157f 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Signatures.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Signatures.java
@@ -120,7 +120,7 @@
 	 *             fails
 	 */
 	public static String getQualifiedMethodSignature(IApiMethod method) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		IApiType type = method.getEnclosingType();
 		if (type != null) {
 			buffer.append(getQualifiedTypeSignature(type)).append('.');
@@ -143,7 +143,7 @@
 	 *             fails
 	 */
 	public static String getQualifiedMethodSignature(IMethodDescriptor method) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		IReferenceTypeDescriptor type = method.getEnclosingType();
 		if (type != null) {
 			buffer.append(getQualifiedTypeSignature(type)).append('.');
@@ -169,7 +169,7 @@
 	 *             fails
 	 */
 	public static String getQualifiedMethodSignature(IMethodDescriptor method, boolean qualifiedparams, boolean includereturn) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		IReferenceTypeDescriptor type = method.getEnclosingType();
 		if (type != null) {
 			buffer.append(getQualifiedTypeSignature(type)).append('.');
@@ -193,7 +193,7 @@
 	 * @throws CoreException
 	 */
 	public static String getMethodSignature(IMethodDescriptor method, boolean includereturn) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		String methodsig = method.getSignature();
 		String methodname = getMethodName(method);
 		String dqsig = dequalifySignature(methodsig);
@@ -262,7 +262,7 @@
 	 * @return the type-qualified field signature
 	 */
 	public static String getQualifiedFieldSignature(IApiField field) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		IApiType type = field.getEnclosingType();
 		if (type != null) {
 			buffer.append(getQualifiedTypeSignature(type)).append('.');
@@ -279,7 +279,7 @@
 	 * @throws Core
 	 */
 	public static String getQualifiedFieldSignature(IFieldDescriptor field) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		IReferenceTypeDescriptor type = field.getEnclosingType();
 		if (type != null) {
 			buffer.append(getQualifiedTypeSignature(type)).append('.');
@@ -331,7 +331,7 @@
 	 * @return
 	 */
 	public static String getTypeSignature(String signature, String genericsignature, boolean qualified) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		String sig = signature.replace('/', '.');
 		if (qualified == false) {
 			sig = dequalifySignature(sig);
@@ -385,7 +385,7 @@
 	 * @param buffer
 	 * @param parameters
 	 */
-	public static void appendTypeParameters(StringBuffer buffer, String[] parameters) {
+	public static void appendTypeParameters(StringBuilder buffer, String[] parameters) {
 		if (parameters == null) {
 			return;
 		}
@@ -438,7 +438,7 @@
 	 * @return the converted signature
 	 */
 	public static String dequalifySignature(String signature) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		char[] chars = signature.toCharArray();
 		for (int i = 0, max = chars.length; i < max; i++) {
 			char currentChar = chars[i];
@@ -799,7 +799,7 @@
 			// if the type is static it doesn't need the enclosing type
 			return;
 		}
-		StringBuffer name = new StringBuffer();
+		StringBuilder name = new StringBuilder();
 		while (parent != null) {
 			parent = parent.getParent();
 			if (parent instanceof AbstractTypeDeclaration) {
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/TarFile.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/TarFile.java
index 12cbc0f..72ce645 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/TarFile.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/TarFile.java
@@ -116,7 +116,7 @@
 			int pos, i;
 
 			pos = 148;
-			StringBuffer checksumString = new StringBuffer();
+			StringBuilder checksumString = new StringBuilder();
 			for (i = 0; i < 8; i++) {
 				if (header[pos + i] == ' ') {
 					continue;
@@ -228,7 +228,7 @@
 			}
 
 			pos = 100;
-			StringBuffer mode = new StringBuffer();
+			StringBuilder mode = new StringBuilder();
 			for (i = 0; i < 8; i++) {
 				if (header[pos + i] == 0) {
 					break;
@@ -249,7 +249,7 @@
 			}
 
 			pos = 100 + 24;
-			StringBuffer size = new StringBuffer();
+			StringBuilder size = new StringBuilder();
 			for (i = 0; i < 12; i++) {
 				if (header[pos + i] == 0) {
 					break;
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
index 68a7ab0..20d4b99 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
@@ -325,7 +325,7 @@
 	 * @param key key
 	 * @param value value
 	 */
-	private static void appendProperty(StringBuffer buffer, String key, String value) {
+	private static void appendProperty(StringBuilder buffer, String key, String value) {
 		buffer.append(key);
 		buffer.append('=');
 		buffer.append(value);
@@ -530,9 +530,9 @@
 	 * @throws IOException if unable to generate description
 	 */
 	public static String generateEEContents(IVMInstall vm, String eeId) throws IOException {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		appendProperty(buffer, ExecutionEnvironmentDescription.JAVA_HOME, vm.getInstallLocation().getCanonicalPath());
-		StringBuffer paths = new StringBuffer();
+		StringBuilder paths = new StringBuilder();
 		LibraryLocation[] libraryLocations = JavaRuntime.getLibraryLocations(vm);
 		for (int i = 0; i < libraryLocations.length; i++) {
 			LibraryLocation lib = libraryLocations[i];
@@ -919,7 +919,7 @@
 	 *         the given flags.
 	 */
 	public static String getDeltaPrefererenceKey(int elementType, int kind, int flags) {
-		StringBuffer buffer = new StringBuffer(Util.getDeltaElementType(elementType));
+		StringBuilder buffer = new StringBuilder(Util.getDeltaElementType(elementType));
 		buffer.append('_').append(Util.getDeltaKindName(kind));
 		if (flags != -1) {
 			buffer.append('_');
@@ -978,7 +978,7 @@
 	 * @return the details of the delta as a string
 	 */
 	public static String getDetail(IDelta delta) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		switch (delta.getElementType()) {
 			case IDelta.CLASS_ELEMENT_TYPE:
 				buffer.append("class"); //$NON-NLS-1$
@@ -2045,7 +2045,7 @@
 	 */
 	public static String getJavaClassLibsAsString() {
 		String[] libs = Util.getJavaClassLibs();
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		for (int i = 0, max = libs.length; i < max; i++) {
 			if (i > 0) {
 				buffer.append(File.pathSeparatorChar);
@@ -2297,7 +2297,7 @@
 	 * @return API component + version identifier
 	 */
 	public static String getDeltaComponentVersionsId(IApiComponent component) {
-		StringBuffer buffer = new StringBuffer(component.getSymbolicName());
+		StringBuilder buffer = new StringBuilder(component.getSymbolicName());
 		String version = component.getVersion();
 		// remove the qualifier part
 		if (version != null) {
@@ -2323,7 +2323,7 @@
 	 * @return API component + version identifier
 	 */
 	public static String getComponentVersionsId(IApiComponent component) {
-		StringBuffer buffer = new StringBuffer(component.getSymbolicName());
+		StringBuilder buffer = new StringBuilder(component.getSymbolicName());
 		String version = component.getVersion();
 		// remove the qualifier part
 		if (version != null) {
@@ -2657,7 +2657,7 @@
 	 * @since 1.0.3
 	 */
 	public static String deepToString(Object[] array) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		for (int i = 0; i < array.length; i++) {
 			buffer.append(array[i].toString());
 			if (i < array.length - 1) {
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIDeprecationReportConversionTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIDeprecationReportConversionTask.java
index 6414eef..955bc60 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIDeprecationReportConversionTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIDeprecationReportConversionTask.java
@@ -156,7 +156,7 @@
 		}
 
 		public String getDisplayString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			if (this.typeName != null && this.typeName.length() != 0) {
 				buffer.append(this.typeName);
 				if (this.flags == IDelta.DEPRECATION) {
@@ -222,11 +222,11 @@
 	private String htmlFileLocation;
 	private String xmlFileLocation;
 
-	private void dumpEndEntryForComponent(StringBuffer buffer, String componentID) {
+	private void dumpEndEntryForComponent(StringBuilder buffer, String componentID) {
 		buffer.append(NLS.bind(Messages.deprecationReportTask_endComponentEntry, componentID));
 	}
 
-	private void dumpEntries(Map<String, List<Entry>> entries, StringBuffer buffer) {
+	private void dumpEntries(Map<String, List<Entry>> entries, StringBuilder buffer) {
 		dumpHeader(buffer);
 		List<Map.Entry<String, List<Entry>>> allEntries = new ArrayList<>();
 		for (Map.Entry<String, List<Entry>> entry : entries.entrySet()) {
@@ -284,19 +284,19 @@
 		dumpFooter(buffer);
 	}
 
-	private void dumpEntry(StringBuffer buffer, Entry entry) {
+	private void dumpEntry(StringBuilder buffer, Entry entry) {
 		buffer.append(NLS.bind(Messages.deprecationReportTask_entry, entry.getDisplayKind(), entry.getDisplayString()));
 	}
 
-	private void dumpEntryForComponent(StringBuffer buffer, String componentID) {
+	private void dumpEntryForComponent(StringBuilder buffer, String componentID) {
 		buffer.append(NLS.bind(Messages.deprecationReportTask_componentEntry, componentID));
 	}
 
-	private void dumpFooter(StringBuffer buffer) {
+	private void dumpFooter(StringBuilder buffer) {
 		buffer.append(Messages.deprecationReportTask_footer);
 	}
 
-	private void dumpHeader(StringBuffer buffer) {
+	private void dumpHeader(StringBuilder buffer) {
 		buffer.append(Messages.deprecationReportTask_header);
 	}
 
@@ -335,7 +335,7 @@
 		try {
 			ConverterDefaultHandler defaultHandler = new ConverterDefaultHandler(this.debug);
 			parser.parse(file, defaultHandler);
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			dumpEntries(defaultHandler.getEntries(), buffer);
 			writeOutput(buffer);
 		} catch (SAXException e) {
@@ -347,7 +347,7 @@
 
 	private String extractNameFromXMLName() {
 		int index = this.xmlFileLocation.lastIndexOf('.');
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(this.xmlFileLocation.substring(0, index)).append(".html"); //$NON-NLS-1$
 		return String.valueOf(buffer);
 	}
@@ -398,7 +398,7 @@
 		this.xmlFileLocation = xmlFilePath;
 	}
 
-	private void writeOutput(StringBuffer buffer) throws IOException {
+	private void writeOutput(StringBuilder buffer) throws IOException {
 		FileWriter writer = null;
 		BufferedWriter bufferedWriter = null;
 		try {
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java
index 67be367..ed5bde0 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/APIFreezeReportConversionTask.java
@@ -199,7 +199,7 @@
 		}
 
 		public String getDisplayString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			if (this.typeName != null && this.typeName.length() != 0) {
 				buffer.append(this.typeName);
 				switch (this.flags) {
@@ -334,11 +334,11 @@
 	private String htmlFileLocation;
 	private String xmlFileLocation;
 
-	private void dumpEndEntryForComponent(StringBuffer buffer, String componentID) {
+	private void dumpEndEntryForComponent(StringBuilder buffer, String componentID) {
 		buffer.append(NLS.bind(Messages.deltaReportTask_endComponentEntry, componentID));
 	}
 
-	private void dumpEntries(Map<String, List<Entry>> entries, Map<String, List<String>> resolverErrors, StringBuffer buffer) {
+	private void dumpEntries(Map<String, List<Entry>> entries, Map<String, List<String>> resolverErrors, StringBuilder buffer) {
 		dumpHeader(buffer);
 		List<Map.Entry<String, List<Entry>>> allEntries = new ArrayList<>();
 		for (Map.Entry<String, List<Entry>> entry : entries.entrySet()) {
@@ -406,15 +406,15 @@
 		dumpFooter(buffer);
 	}
 
-	private void dumpEntry(StringBuffer buffer, Entry entry) {
+	private void dumpEntry(StringBuilder buffer, Entry entry) {
 		buffer.append(NLS.bind(Messages.deltaReportTask_entry, entry.getDisplayKind(), entry.getDisplayString()));
 	}
 
-	private void dumpEntryForComponent(StringBuffer buffer, String componentID) {
+	private void dumpEntryForComponent(StringBuilder buffer, String componentID) {
 		buffer.append(NLS.bind(Messages.deltaReportTask_componentEntry, componentID));
 	}
 
-	private void dumpResolverErrorSummary(StringBuffer buffer, String componentID, List<String> resolverErrors) {
+	private void dumpResolverErrorSummary(StringBuilder buffer, String componentID, List<String> resolverErrors) {
 		int size = resolverErrors.size();
 		if (size == 1) {
 			buffer.append(NLS.bind(Messages.APIFreezeReportConversionTask_resolverErrorWarningSingle, new String[] {
@@ -425,7 +425,7 @@
 		}
 	}
 
-	private void dumpResolverErrorTable(StringBuffer buffer, String componentID, List<String> resolverErrors) {
+	private void dumpResolverErrorTable(StringBuilder buffer, String componentID, List<String> resolverErrors) {
 		buffer.append(NLS.bind(Messages.APIFreezeReportConversionTask_resolverErrorTableStart, componentID));
 		for (String message : resolverErrors) {
 			buffer.append(NLS.bind(Messages.APIFreezeReportConversionTask_resolverErrorTableEntry, message));
@@ -433,11 +433,11 @@
 		buffer.append(Messages.APIFreezeReportConversionTask_resolverErrorTableEnd);
 	}
 
-	private void dumpFooter(StringBuffer buffer) {
+	private void dumpFooter(StringBuilder buffer) {
 		buffer.append(Messages.deltaReportTask_footer);
 	}
 
-	private void dumpHeader(StringBuffer buffer) {
+	private void dumpHeader(StringBuilder buffer) {
 		buffer.append(Messages.deltaReportTask_header);
 	}
 
@@ -507,12 +507,12 @@
 		try {
 			ConverterDefaultHandler defaultHandler = new ConverterDefaultHandler(this.debug);
 			parser.parse(file, defaultHandler);
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			dumpEntries(defaultHandler.getEntries(), defaultHandler.getResolverErrors(), buffer);
 			writeOutput(buffer);
 		} catch (SAXException e) {
 			// if xml file is empty, create an empty html file
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			try {
 				writeOutput(buffer);
 			} catch (IOException e1) {
@@ -525,7 +525,7 @@
 	}
 
 	private String extractNameFromXMLName(int index) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(this.xmlFileLocation.substring(0, index)).append(".html"); //$NON-NLS-1$
 		return String.valueOf(buffer);
 	}
@@ -576,7 +576,7 @@
 		this.xmlFileLocation = xmlFilePath;
 	}
 
-	private void writeOutput(StringBuffer buffer) throws IOException {
+	private void writeOutput(StringBuilder buffer) throws IOException {
 		FileWriter writer = null;
 		BufferedWriter bufferedWriter = null;
 		try {
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/AnalysisReportConversionTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/AnalysisReportConversionTask.java
index b92e05f..dd3360c 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/AnalysisReportConversionTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/AnalysisReportConversionTask.java
@@ -54,7 +54,7 @@
 		}
 
 		public String getHtmlMessage() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			char[] chars = this.message.toCharArray();
 			for (char character : chars) {
 				switch (character) {
@@ -79,7 +79,7 @@
 
 		@Override
 		public String toString() {
-			StringBuffer buffer = new StringBuffer();
+			StringBuilder buffer = new StringBuilder();
 			buffer.append("Problem : ").append(this.message).append(' ').append(this.severity); //$NON-NLS-1$
 			return String.valueOf(buffer);
 		}
@@ -518,7 +518,7 @@
 	}
 
 	private String extractLinkFrom(String fileName) {
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append('.').append(fileName.substring(this.htmlRoot.getAbsolutePath().length()).replace('\\', '/'));
 		return String.valueOf(buffer);
 	}
@@ -526,7 +526,7 @@
 	private String extractNameFromXMLName(File xmlFile) {
 		String fileName = xmlFile.getAbsolutePath();
 		int index = fileName.lastIndexOf('.');
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		buffer.append(fileName.substring(this.reportsRoot.getAbsolutePath().length(), index)).append(".html"); //$NON-NLS-1$
 		File htmlFile = new File(this.htmlReportsLocation, String.valueOf(buffer));
 		return htmlFile.getAbsolutePath();
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java
index 48e5551..e0bad9c 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java
@@ -68,7 +68,7 @@
 		private static final String NATURE_ELEMENT_NAME = "nature"; //$NON-NLS-1$
 		boolean isAPIToolsNature = false;
 		boolean insideNature = false;
-		StringBuffer buffer;
+		StringBuilder buffer;
 
 		@Override
 		public void error(SAXParseException e) throws SAXException {
@@ -82,7 +82,7 @@
 			}
 			this.insideNature = NATURE_ELEMENT_NAME.equals(name);
 			if (this.insideNature) {
-				this.buffer = new StringBuffer();
+				this.buffer = new StringBuilder();
 			}
 		}
 
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/CommonUtilsTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/CommonUtilsTask.java
index 22eae1a..0802078 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/CommonUtilsTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/CommonUtilsTask.java
@@ -230,7 +230,7 @@
 
 	public static String convertToHtml(String s) {
 		char[] contents = s.toCharArray();
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		for (char c : contents) {
 			switch (c) {
 				case '<':
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java
index 2a156d8..40d6606 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/FilterListDeltaVisitor.java
@@ -67,7 +67,7 @@
 
 	private boolean isExcluded(IDelta delta) {
 		String typeName = delta.getTypeName();
-		StringBuffer buffer = new StringBuffer();
+		StringBuilder buffer = new StringBuilder();
 		String componentId = delta.getComponentId();
 		if (componentId != null) {
 			if (this.excludedElements.containsExactMatch(componentId) || this.excludedElements.containsPartialMatch(componentId)) {
diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/MissingRefProblemsTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/MissingRefProblemsTask.java
index 07ee8be..0d7303d 100644
--- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/MissingRefProblemsTask.java
+++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/MissingRefProblemsTask.java
@@ -93,7 +93,7 @@
 	@Override
 	public void execute() throws BuildException {
 		if (super.currentBaselineLocation == null || super.reportLocation == null || this.apiUseScans == null) {
-			StringBuffer error = new StringBuffer(NLS.bind(Messages.MissingRefProblemsTask_missingArguments, new String[] {
+			StringBuilder error = new StringBuilder(NLS.bind(Messages.MissingRefProblemsTask_missingArguments, new String[] {
 					super.currentBaselineLocation, super.reportLocation, }));
 			throw new BuildException(error.toString());
 		}
@@ -106,7 +106,7 @@
 			for (String usescan : usescans) {
 				File file = new File(usescan.trim());
 				if (!file.exists()) {
-					StringBuffer error = new StringBuffer(Messages.MissingRefProblemsTask_invalidApiUseScanLocation);
+					StringBuilder error = new StringBuilder(Messages.MissingRefProblemsTask_invalidApiUseScanLocation);
 					error.append(usescan);
 					throw new BuildException(error.toString());
 				}