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;
}
}
}