From 5b3fe39a8d05c26ef78ba634f53e356ca0460fdc Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Fri, 11 Mar 2016 00:09:44 -0500 Subject: [PATCH] Fix new null warnings Recent 4.6 JDT emits null warnings in a few more places. Some un-annotated generic types are now implied to be nullable. Change-Id: I37349ba28ce6d88a60cb44c5df7d4f8f5d7c439c Signed-off-by: Alexandre Montplaisir Signed-off-by: Marc-Andre Laperle Reviewed-on: https://git.eclipse.org/r/68227 Reviewed-by: Hudson CI --- .../collect/BufferedBlockingQueueTest.java | 4 ++-- .../tracecompass/tmf/core/util/Pair.java | 19 ++++++++++--------- .../AbstractTracePackageOperation.java | 11 ++++++----- .../TracePackageExtractManifestOperation.java | 5 +++-- .../TracePackageImportOperation.java | 3 ++- .../tmf/ui/views/uml2sd/core/Frame.java | 5 +++-- .../ui/widgets/timegraph/widgets/Utils.java | 3 ++- 7 files changed, 28 insertions(+), 22 deletions(-) diff --git a/common/org.eclipse.tracecompass.common.core.tests/src/org/eclipse/tracecompass/common/core/tests/collect/BufferedBlockingQueueTest.java b/common/org.eclipse.tracecompass.common.core.tests/src/org/eclipse/tracecompass/common/core/tests/collect/BufferedBlockingQueueTest.java index d0b3095d51..01c67fa25b 100644 --- a/common/org.eclipse.tracecompass.common.core.tests/src/org/eclipse/tracecompass/common/core/tests/collect/BufferedBlockingQueueTest.java +++ b/common/org.eclipse.tracecompass.common.core.tests/src/org/eclipse/tracecompass/common/core/tests/collect/BufferedBlockingQueueTest.java @@ -346,7 +346,7 @@ public class BufferedBlockingQueueTest { */ @Test public void testConcurrentIteration() { - final BufferedBlockingQueue queue = new BufferedBlockingQueue<>(15, 15); + final BufferedBlockingQueue<@NonNull String> queue = new BufferedBlockingQueue<>(15, 15); final String poisonPill = "That's all folks!"; /* @@ -388,7 +388,7 @@ public class BufferedBlockingQueueTest { * Number of observer threads. It should be >= 0. * @return The consumed elements, as seen by each consumer thread. */ - private static Iterable> runConcurrencyTest(final BufferedBlockingQueue queue, + private static Iterable> runConcurrencyTest(final BufferedBlockingQueue<@NonNull T> queue, final List testBuffer, final @NonNull T poisonPill, int nbProducerThreads, diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/util/Pair.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/util/Pair.java index c805ece46e..a27e152c66 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/util/Pair.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/util/Pair.java @@ -15,6 +15,7 @@ package org.eclipse.tracecompass.tmf.core.util; import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.tracecompass.common.core.NonNullUtils; /** * Pair utility class, encapsulates a pair of objects. @@ -68,35 +69,36 @@ public class Pair { return fSecond; } + @Override public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + fFirst.hashCode(); - result = prime * result + fSecond.hashCode(); + result = prime * result + hashFromNullable(fFirst); + result = prime * result + hashFromNullable(fSecond); return result; } + private static int hashFromNullable(@Nullable Object o) { + return o == null ? 0 : o.hashCode(); + } + @Override public boolean equals(@Nullable Object obj) { if (this == obj) { return true; } - if (obj == null) { return false; } - if (getClass() != obj.getClass()) { return false; } - Pair other = (Pair) obj; - - if (!fFirst.equals(other.fFirst)) { + if (!NonNullUtils.equalsNullable(other.fFirst, fFirst)) { return false; } - if (!fSecond.equals(other.fSecond)) { + if (!NonNullUtils.equalsNullable(other.fSecond, fSecond)) { return false; } return true; @@ -106,5 +108,4 @@ public class Pair { public String toString() { return "(" + fFirst + ", " + fSecond + ")"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ } - } \ No newline at end of file diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/AbstractTracePackageOperation.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/AbstractTracePackageOperation.java index c3585f31ff..e5470dff33 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/AbstractTracePackageOperation.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/AbstractTracePackageOperation.java @@ -21,6 +21,7 @@ import java.util.zip.ZipFile; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.ui.internal.wizards.datatransfer.TarEntry; import org.eclipse.ui.internal.wizards.datatransfer.TarException; import org.eclipse.ui.internal.wizards.datatransfer.TarFile; @@ -196,7 +197,7 @@ public abstract class AbstractTracePackageOperation { * * @return enumeration of all files in the archive */ - Enumeration entries(); + Enumeration<@NonNull ? extends ArchiveEntry> entries(); /** * Close the file input stream. @@ -235,8 +236,8 @@ public abstract class AbstractTracePackageOperation { } @Override - public Enumeration entries() { - Vector v = new Vector<>(); + public Enumeration<@NonNull ? extends ArchiveEntry> entries() { + Vector<@NonNull ArchiveEntry> v = new Vector<>(); for (Enumeration e = fTarFile.entries(); e.hasMoreElements();) { v.add(new TarArchiveEntry((TarEntry) e.nextElement())); } @@ -346,8 +347,8 @@ public abstract class AbstractTracePackageOperation { } @Override - public Enumeration entries() { - Vector v = new Vector<>(); + public Enumeration<@NonNull ? extends ArchiveEntry> entries() { + Vector<@NonNull ArchiveEntry> v = new Vector<>(); for (Enumeration e = fZipFile.entries(); e.hasMoreElements();) { v.add(new ZipAchiveEntry((ZipEntry) e.nextElement())); } diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java index b31e01fc41..ab3079bd94 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageExtractManifestOperation.java @@ -25,6 +25,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jface.operation.ModalContext; import org.eclipse.tracecompass.internal.tmf.ui.Activator; import org.eclipse.tracecompass.internal.tmf.ui.project.wizards.tracepkg.AbstractTracePackageOperation; @@ -71,7 +72,7 @@ public class TracePackageExtractManifestOperation extends AbstractTracePackageOp return; } - Enumeration entries = archiveFile.entries(); + Enumeration<@NonNull ?> entries = archiveFile.entries(); boolean found = false; while (entries.hasMoreElements()) { @@ -118,7 +119,7 @@ public class TracePackageExtractManifestOperation extends AbstractTracePackageOp private TracePackageElement[] generateElementsFromArchive() { ArchiveFile archiveFile = getSpecifiedArchiveFile(); - Enumeration entries = archiveFile.entries(); + Enumeration<@NonNull ?> entries = archiveFile.entries(); Set traceFileNames = new HashSet<>(); while (entries.hasMoreElements()) { ArchiveEntry entry = (ArchiveEntry) entries.nextElement(); diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageImportOperation.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageImportOperation.java index 9b2acfe255..a4ae99b406 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageImportOperation.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/wizards/tracepkg/importexport/TracePackageImportOperation.java @@ -39,6 +39,7 @@ import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.URIUtil; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jface.operation.ModalContext; import org.eclipse.tracecompass.internal.tmf.ui.Activator; import org.eclipse.tracecompass.internal.tmf.ui.project.wizards.tracepkg.AbstractTracePackageOperation; @@ -428,7 +429,7 @@ public class TracePackageImportOperation extends AbstractTracePackageOperation i private IStatus importFiles(ArchiveFile archiveFile, List> fileNameAndLabelPairs, IPath destinationContainerPath, IPath baseSourcePath, IProgressMonitor monitor) { List objects = new ArrayList<>(); - Enumeration entries = archiveFile.entries(); + Enumeration<@NonNull ?> entries = archiveFile.entries(); while (entries.hasMoreElements()) { ArchiveEntry entry = (ArchiveEntry) entries.nextElement(); String entryName = entry.getName(); diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/uml2sd/core/Frame.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/uml2sd/core/Frame.java index 6dd290d2e5..76c98ca514 100755 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/uml2sd/core/Frame.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/uml2sd/core/Frame.java @@ -491,8 +491,9 @@ public class Frame extends BasicFrame { */ public void reorder(List list) { for (int i = 0; i < list.size(); i++) { - if (list.get(i) instanceof Lifeline[]) { - Lifeline temp[] = (Lifeline[]) list.get(i); + Object o = list.get(i); + if (o instanceof Lifeline[]) { + Lifeline temp[] = (Lifeline[]) o; if (temp.length == 2) { if (temp[1] == null) { insertLifelineAfter(temp[0], getLifeline(lifeLinesCount() - 1)); diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/widgets/timegraph/widgets/Utils.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/widgets/timegraph/widgets/Utils.java index 6881af53c8..dbd565a0f6 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/widgets/timegraph/widgets/Utils.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/widgets/timegraph/widgets/Utils.java @@ -22,6 +22,7 @@ import java.util.Iterator; import java.util.TimeZone; import java.util.concurrent.TimeUnit; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.graphics.GC; @@ -606,7 +607,7 @@ public class Utils { if (null == entry || ! entry.hasTimeEvents()) { return null; } - Iterator iterator = entry.getTimeEventsIterator(); + Iterator<@NonNull ? extends ITimeEvent> iterator = entry.getTimeEventsIterator(); if (iterator == null) { return null; } -- 2.34.1