fix some array cloning in the hyperlink.

Change-Id: I0c3f0ecf0222b93081be99cf1e09dfc9a618f72c
Signed-off-by: Jacques Bouthillier <lmcbout@gmail.com>
diff --git a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/tabs/EGerritHyperlinkManager.java b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/tabs/EGerritHyperlinkManager.java
index a00704f..9e34391 100644
--- a/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/tabs/EGerritHyperlinkManager.java
+++ b/org.eclipse.egerrit.ui/src/org/eclipse/egerrit/internal/ui/tabs/EGerritHyperlinkManager.java
@@ -130,13 +130,13 @@
 	 */
 	@Override
 	public void setHyperlinkDetectors(IHyperlinkDetector[] hyperlinkDetectors) {
-		super.setHyperlinkDetectors(hyperlinkDetectors);
 		Assert.isTrue(hyperlinkDetectors != null && hyperlinkDetectors.length > 0);
+		super.setHyperlinkDetectors(hyperlinkDetectors.clone());
 		if (fHyperlinkDetectors == null) {
-			fHyperlinkDetectors = hyperlinkDetectors;
+			fHyperlinkDetectors = hyperlinkDetectors.clone();
 		} else {
 			synchronized (fHyperlinkDetectors) {
-				fHyperlinkDetectors = hyperlinkDetectors;
+				fHyperlinkDetectors = hyperlinkDetectors.clone();
 			}
 		}
 	}
@@ -183,9 +183,8 @@
 
 				if (detector instanceof IHyperlinkDetectorExtension2) {
 					int stateMask = ((IHyperlinkDetectorExtension2) detector).getStateMask();
-					if (stateMask != -1 && stateMask != fActiveHyperlinkStateMask) {
-						continue;
-					} else if (stateMask == -1 && fActiveHyperlinkStateMask != fHyperlinkStateMask) {
+					if (stateMask != -1 && (stateMask != fActiveHyperlinkStateMask
+							|| fActiveHyperlinkStateMask != fHyperlinkStateMask)) {
 						continue;
 					}
 				} else if (fActiveHyperlinkStateMask != fHyperlinkStateMask) {
@@ -345,10 +344,9 @@
 
 		synchronized (fHyperlinkDetectors) {
 			for (IHyperlinkDetector fHyperlinkDetector : fHyperlinkDetectors) {
-				if (fHyperlinkDetector instanceof IHyperlinkDetectorExtension2) {
-					if (stateMask == ((IHyperlinkDetectorExtension2) fHyperlinkDetector).getStateMask()) {
-						return true;
-					}
+				if ((fHyperlinkDetector instanceof IHyperlinkDetectorExtension2)
+						&& stateMask == ((IHyperlinkDetectorExtension2) fHyperlinkDetector).getStateMask()) {
+					return true;
 				}
 			}
 		}