Bug 528717 - Cleanup some Sonar reports

Change-Id: I4fb77d006f5cac82e87f0c255fa0821397ba2fe9
Signed-off-by: Mickael Istria <mistria@redhat.com>
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceDelta.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceDelta.java
index a876ff6..6d0e8ba 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceDelta.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/ResourceDelta.java
@@ -308,8 +308,7 @@
 			info = oldInfo;
 		else
 			info = newInfo;
-		if (info == null)
-			Assert.isNotNull(null, "Do not have resource info for resource in delta: " + path); //$NON-NLS-1$
+		Assert.isNotNull(info, "Do not have resource info for resource in delta: " + path); //$NON-NLS-1$
 		cachedResource = deltaInfo.getWorkspace().newResource(path, info.getType());
 		return cachedResource;
 	}
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LinkDescription.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LinkDescription.java
index 070d3d9..76d56a1 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LinkDescription.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LinkDescription.java
@@ -60,7 +60,10 @@
 
 	@Override
 	public boolean equals(Object o) {
-		if (!(o.getClass() == LinkDescription.class))
+		if (o == null) {
+			return false;
+		}
+		if (o.getClass() != this.getClass())
 			return false;
 		LinkDescription other = (LinkDescription) o;
 		return localLocation.equals(other.localLocation) && path.equals(other.path) && type == other.type;
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/PathVariableUtil.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/PathVariableUtil.java
index 5133b58..af2ee5b 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/PathVariableUtil.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/PathVariableUtil.java
@@ -27,17 +27,17 @@
 	static public String getUniqueVariableName(String variable, IResource resource) {
 		int index = 1;
 		variable = getValidVariableName(variable);
-		String destVariable = variable;
+		StringBuilder destVariable = new StringBuilder(variable);
 
 		IPathVariableManager pathVariableManager = resource.getPathVariableManager();
-		if (destVariable.startsWith(ParentVariableResolver.NAME) || destVariable.startsWith(ProjectLocationVariableResolver.NAME))
-			destVariable = "copy_" + destVariable; //$NON-NLS-1$
+		if (variable.startsWith(ParentVariableResolver.NAME) || variable.startsWith(ProjectLocationVariableResolver.NAME))
+			destVariable.insert(0, "copy_"); //$NON-NLS-1$
 
-		while (pathVariableManager.isDefined(destVariable)) {
-			destVariable = destVariable + index;
+		while (pathVariableManager.isDefined(destVariable.toString())) {
+			destVariable.append(index);
 			index++;
 		}
-		return destVariable;
+		return destVariable.toString();
 	}
 
 	public static String getValidVariableName(String variable) {
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectContentTypes.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectContentTypes.java
index f41c13d..b166f2e 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectContentTypes.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectContentTypes.java
@@ -197,7 +197,7 @@
 		ProjectInfo info = (ProjectInfo) project.getResourceInfo(false, false);
 		//fail if project has been deleted concurrently
 		if (info == null)
-			project.checkAccessible(project.getFlags(info));
+			project.checkAccessible(project.getFlags(null));
 		IContentTypeMatcher matcher = info.getMatcher();
 		if (matcher != null)
 			return matcher;
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java
index dd14cf8..d18b2da 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java
@@ -503,7 +503,7 @@
 			String id = (String) matcher[0];
 			// the id can't be null
 			if (id == null) {
-				parseProblem(NLS.bind(Messages.projRead_badFilterID, id));
+				parseProblem(NLS.bind(Messages.projRead_badFilterID, null));
 				return;
 			}
 
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/VariableDescription.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/VariableDescription.java
index aaa9dbd..4da6d61 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/VariableDescription.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/VariableDescription.java
@@ -35,7 +35,10 @@
 
 	@Override
 	public boolean equals(Object o) {
-		if (!(o.getClass() == VariableDescription.class))
+		if (o == null) {
+			return false;
+		}
+		if (o.getClass() != this.getClass())
 			return false;
 		VariableDescription other = (VariableDescription) o;
 		return name.equals(other.name) && value == other.value;
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/utils/UniversalUniqueIdentifier.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/utils/UniversalUniqueIdentifier.java
index 0a6dcc6..ef05c44 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/utils/UniversalUniqueIdentifier.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/utils/UniversalUniqueIdentifier.java
@@ -18,7 +18,6 @@
 import java.security.SecureRandom;
 import java.util.GregorianCalendar;
 import java.util.Random;
-import org.eclipse.core.runtime.Assert;
 
 public class UniversalUniqueIdentifier implements java.io.Serializable {
 
@@ -84,7 +83,7 @@
 	/**
 	 Constructor that accepts the bytes to use for the instance.&nbsp;&nbsp; The format
 	 of the byte array is compatible with the <code>toBytes()</code> method.
-
+	
 	 <p>The constructor returns the undefined uuid if the byte array is invalid.
 	
 	 @see #toBytes()
@@ -116,20 +115,6 @@
 		return (nowMillis.subtract(baseMillis).multiply(BigInteger.valueOf(10000L)));
 	}
 
-	/**
-	 Simply increases the visibility of <code>Object</code>'s clone.
-	 Otherwise, no new behaviour.
-	 */
-	@Override
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException e) {
-			Assert.isTrue(false, Messages.utils_clone);
-			return null;
-		}
-	}
-
 	public static int compareTime(byte[] fBits1, byte[] fBits2) {
 		for (int i = TIME_FIELD_STOP; i >= 0; i--)
 			if (fBits1[i] != fBits2[i])
@@ -198,7 +183,7 @@
 	/**
 	 Answers the IP address of the local machine using the
 	 Java API class <code>InetAddress</code>.
-
+	
 	 @return byte[] the network address in network order
 	 @see    java.net.InetAddress#getLocalHost()
 	 @see    java.net.InetAddress#getAddress()
@@ -327,7 +312,7 @@
 
 	/**
 	 This representation is compatible with the (byte[]) constructor.
-
+	
 	 @see #UniversalUniqueIdentifier(byte[])
 	 */
 	public byte[] toBytes() {
diff --git a/tests/org.eclipse.core.tests.resources/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.core.tests.resources/.settings/org.eclipse.jdt.core.prefs
index 9cec31a..3d82d09 100644
--- a/tests/org.eclipse.core.tests.resources/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.core.tests.resources/.settings/org.eclipse.jdt.core.prefs
@@ -141,7 +141,7 @@
 org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=84
 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
@@ -413,7 +413,7 @@
 org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
 org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
 org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=separate_lines
 org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
 org.eclipse.jdt.core.formatter.tabulation.char=tab
 org.eclipse.jdt.core.formatter.tabulation.size=4
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/RefreshLocalJavaFileBuilder.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/RefreshLocalJavaFileBuilder.java
index 615ce59..702eec7 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/RefreshLocalJavaFileBuilder.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/RefreshLocalJavaFileBuilder.java
@@ -13,6 +13,7 @@
 
 import java.io.FileOutputStream;
 import java.util.Map;
+import org.eclipse.core.internal.utils.FileUtil;
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
 
@@ -32,16 +33,18 @@
 		IFile file = project.getFile("A.java");
 		IPath localLocation = project.getLocation().append(file.getName());
 		java.io.File localFile = localLocation.toFile();
+		FileOutputStream out = null;
 		try {
 			if (localFile.exists()) {
 				localFile.delete();
 			}
-			FileOutputStream out = new FileOutputStream(localFile);
+			out = new FileOutputStream(localFile);
 			out.write("public class A {}".getBytes());
-			out.close();
 		} catch (Exception e) {
 			e.printStackTrace();
 			return null;
+		} finally {
+			FileUtil.safeClose(out);
 		}
 
 		project.refreshLocal(IResource.DEPTH_INFINITE, null);
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/Comparator.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/Comparator.java
deleted file mode 100644
index 2134502..0000000
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/Comparator.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Alexander Kurtakov <akurtako@redhat.com> - Bug 459343
- *******************************************************************************/
-package org.eclipse.core.tests.resources;
-
-import java.util.*;
-import org.eclipse.core.resources.ICommand;
-
-/**
- * This class provides static comparison methods for various core
- * objects that do not implement equals.
- */
-public class Comparator {
-	public static boolean equals(byte[] b0, byte[] b1) {
-		if (b0 == b1) {
-			return true;
-		}
-
-		if (b0 == null || b1 == null) {
-			return false;
-		}
-
-		if (b0.length != b1.length) {
-			return false;
-		}
-
-		for (int i = 0; i < b0.length; ++i) {
-			if (b0[i] != b1[i]) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	public static boolean equals(Object[] obj0, Object[] obj1) {
-		return equals(obj0, obj1, true);
-	}
-
-	public static boolean equals(Object[] obj0, Object[] obj1, boolean isOrderImportant) {
-		if (obj0 == obj1) {
-			return true;
-		}
-
-		if (obj0 == null || obj1 == null) {
-			return false;
-		}
-
-		if (obj0.length != obj1.length) {
-			return false;
-		}
-
-		if (isOrderImportant) {
-			for (int i = 0; i < obj0.length; ++i) {
-				if (!equals(obj0[i], obj1[i])) {
-					return false;
-				}
-			}
-		} else {
-			boolean[] checkList = new boolean[obj0.length];
-			for (int i = 0; i < checkList.length; ++i) {
-				checkList[i] = false;
-			}
-
-			for (Object element : obj0) {
-				boolean found = false;
-				for (int j = 0; !found && j < obj1.length; ++j) {
-					if (!checkList[j] && equals(element, obj1[j])) {
-						checkList[j] = true;
-						found = true;
-					}
-				}
-				if (!found) {
-					return false;
-				}
-			}
-		}
-
-		return true;
-	}
-
-	public static boolean equals(ICommand[] cs0, ICommand[] cs1) {
-		if (cs0 == cs1) {
-			return true;
-		}
-		if (cs0 == null || cs1 == null) {
-			return false;
-		}
-		if (cs0.length != cs1.length) {
-			return false;
-		}
-		for (int i = 0; i < cs0.length; ++i) {
-			if (!cs0[i].getBuilderName().equals(cs1[i].getBuilderName())) {
-				return false;
-			}
-			if (!equals(cs0[i].getArguments(), cs1[i].getArguments())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	public static boolean equals(Object obj0, Object obj1) {
-		if (obj0 == obj1) {
-			return true;
-		}
-
-		if (obj0 == null || obj1 == null) {
-			return false;
-		}
-
-		if (obj0 instanceof byte[] && obj1 instanceof byte[]) {
-			return equals((byte[]) obj0, (byte[]) obj1);
-		} else if (obj0 instanceof Enumeration && obj1 instanceof Enumeration) {
-			return equals((Enumeration<?>) obj0, (Enumeration<?>) obj1);
-		} else if (obj0 instanceof Hashtable && obj1 instanceof Hashtable) {
-			return equals((Hashtable<?, ?>) obj0, (Hashtable<?, ?>) obj1);
-		} else if (obj0 instanceof ICommand[] && obj1 instanceof ICommand[]) {
-			return equals((ICommand[]) obj0, (ICommand[]) obj1);
-		} else if (obj0 instanceof Object[] && obj1 instanceof Object[]) {
-			return equals((Object[]) obj0, (Object[]) obj1);
-		} else if (obj0 instanceof Vector && obj1 instanceof Vector) {
-			return equals((Vector<?>) obj0, (Vector<?>) obj1);
-		}
-
-		return obj0.equals(obj1);
-	}
-
-	public static boolean equals(Enumeration<?> e, Object[] obj) {
-		return equals(e, obj, true);
-	}
-
-	public static boolean equals(Enumeration<?> e, Object[] obj1, boolean isOrderImportant) {
-		Vector<Object> v = new Vector<>();
-
-		while (e.hasMoreElements()) {
-			v.addElement(e.nextElement());
-		}
-
-		Object[] obj0 = new Object[v.size()];
-		v.copyInto(obj0);
-
-		return equals(obj0, obj1, isOrderImportant);
-	}
-
-	public static boolean equals(Enumeration<?> e0, Enumeration<?> e1) {
-		if (e0 == e1) {
-			return true;
-		}
-
-		if (e0 == null || e1 == null) {
-			return false;
-		}
-
-		while (e0.hasMoreElements() && e1.hasMoreElements()) {
-			if (!equals(e0.nextElement(), e1.nextElement())) {
-				return false;
-			}
-		}
-
-		if (e0.hasMoreElements() || e1.hasMoreElements()) {
-			return false;
-		}
-
-		return true;
-	}
-
-	public static boolean equals(Hashtable<?, ?> ht0, Hashtable<?, ?> ht1) {
-		if (ht0 == ht1) {
-			return true;
-		}
-
-		if (ht0 == null || ht1 == null) {
-			return false;
-		}
-
-		if (ht0.size() != ht1.size()) {
-			return false;
-		}
-
-		Enumeration<?> keys0 = ht0.keys();
-		while (keys0.hasMoreElements()) {
-			Object key = keys0.nextElement();
-			if (!equals(ht0.get(key), ht1.get(key))) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	public static boolean equals(Vector<?> c0, Vector<?> c1) {
-		if (c0 == c1) {
-			return true;
-		}
-
-		if (c0 == null || c1 == null) {
-			return false;
-		}
-
-		if (!equals(c0.elements(), c1.elements())) {
-			return false;
-		}
-
-		return true;
-	}
-}
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceTest.java
index dbcc2f5..e0b1f78 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/IResourceTest.java
@@ -313,7 +313,7 @@
 	/**
 	 * Returns interesting resource states. */
 	protected Integer[] interestingStates() {
-		return new Integer[] {Integer.valueOf(S_WORKSPACE_ONLY), Integer.valueOf(S_FILESYSTEM_ONLY), Integer.valueOf(S_UNCHANGED), Integer.valueOf(S_CHANGED), new Integer(S_DOES_NOT_EXIST),
+		return new Integer[] {Integer.valueOf(S_WORKSPACE_ONLY), Integer.valueOf(S_FILESYSTEM_ONLY), Integer.valueOf(S_UNCHANGED), Integer.valueOf(S_CHANGED), Integer.valueOf(S_DOES_NOT_EXIST),
 				//		Integer.valueOf(S_FOLDER_TO_FILE),
 				//		Integer.valueOf(S_FILE_TO_FOLDER),
 		};
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/NatureTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/NatureTest.java
index 3111667..6a8024d 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/NatureTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/NatureTest.java
@@ -341,16 +341,16 @@
 	}
 
 	private void copy(java.io.File src, java.io.File dst) throws IOException {
-		InputStream in = new FileInputStream(src);
-		OutputStream out = new FileOutputStream(dst);
-
-		byte[] buffer = new byte[1024];
-		int read;
-		while ((read = in.read(buffer)) > 0) {
-			out.write(buffer, 0, read);
+		try (
+			InputStream in = new FileInputStream(src);
+			OutputStream out = new FileOutputStream(dst);
+		) {
+			byte[] buffer = new byte[1024];
+			int read;
+			while ((read = in.read(buffer)) > 0) {
+				out.write(buffer, 0, read);
+			}
 		}
-		in.close();
-		out.close();
 	}
 
 	/**
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/ResourceTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/ResourceTest.java
index b0180b6..b087671 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/ResourceTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/ResourceTest.java
@@ -19,6 +19,7 @@
 import java.util.Set;
 import org.eclipse.core.filesystem.*;
 import org.eclipse.core.internal.resources.Resource;
+import org.eclipse.core.internal.utils.FileUtil;
 import org.eclipse.core.internal.utils.UniversalUniqueIdentifier;
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
@@ -130,18 +131,8 @@
 				subMonitor.setWorkRemaining(100).split(1);
 			}
 		} finally {
-			try {
-				source.close();
-			} catch (IOException e) {
-				// ignore
-			} finally {
-				//close destination in finally in case source.close fails
-				try {
-					destination.close();
-				} catch (IOException e) {
-					// ignore
-				}
-			}
+			FileUtil.safeClose(source);
+			FileUtil.safeClose(destination);
 		}
 	}
 
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/XMLContentDescriberTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/XMLContentDescriberTest.java
index 7aece1e..12e221c 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/XMLContentDescriberTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/XMLContentDescriberTest.java
@@ -11,6 +11,7 @@
 package org.eclipse.core.tests.resources.content;
 
 import java.io.*;
+import java.util.Arrays;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 import org.eclipse.core.runtime.Platform;
@@ -108,8 +109,8 @@
 		for (boolean[] flag : flags) {
 			description = Platform.getContentTypeManager().getDescriptionFor(getReader(encodingInContent, flag[0], flag[1], flag[2]), "fake.xml", new QualifiedName[] {IContentDescription.CHARSET});
 			assertNotNull("1.0: " + flag[0] + " " + flag[1] + " " + flag[2], description);
-			assertEquals("1.1: " + flag, Platform.PI_RUNTIME + ".xml", description.getContentType().getId());
-			assertEquals("1.2: " + flag, expectedEncoding, description.getProperty(IContentDescription.CHARSET));
+			assertEquals("1.1: " + Arrays.toString(flag), Platform.PI_RUNTIME + ".xml", description.getContentType().getId());
+			assertEquals("1.2: " + Arrays.toString(flag), expectedEncoding, description.getProperty(IContentDescription.CHARSET));
 		}
 	}
 
diff --git a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/usecase/IProjectTest.java b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/usecase/IProjectTest.java
index 0309310..920fc57 100644
--- a/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/usecase/IProjectTest.java
+++ b/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/usecase/IProjectTest.java
@@ -11,12 +11,12 @@
  *******************************************************************************/
 package org.eclipse.core.tests.resources.usecase;
 
+import java.util.Arrays;
 import java.util.Hashtable;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.resources.Comparator;
 
 public class IProjectTest extends IResourceTest {
 	public static String LOCAL_LOCATION_PATH_STRING_0;
@@ -221,7 +221,7 @@
 		desc.setBuildSpec(commands);
 
 		// Compare project buildspecs
-		assertTrue("15.5", Comparator.equals(desc.getBuildSpec(), commands));
+		assertTrue("15.5", Arrays.deepEquals(desc.getBuildSpec(), commands));
 
 		// IResource.isLocal(int)
 		assertTrue("18.0", proj.isLocal(IResource.DEPTH_ZERO));