From 1d83ed07f51fbfce0a582acbd6e08b0926a67ce5 Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Fri, 13 Feb 2015 14:35:10 -0500 Subject: [PATCH 1/1] tmf: Mark TmfTraceUtils @NonNullByDefault Change-Id: I5121586872f26e8ed3f3f790611a91d51b3f9b28 Signed-off-by: Alexandre Montplaisir Reviewed-on: https://git.eclipse.org/r/41856 Reviewed-by: Hudson CI --- .../cpuusage/CpuUsageStateProviderTest.java | 15 +++++++------- .../KernelThreadInformationProviderTest.java | 15 +++++++------- .../kernelanalysis/KernelTidAspectTest.java | 19 +++++++++--------- .../ui/views/cpuusage/CpuUsageComposite.java | 5 ++++- .../ui/views/cpuusage/CpuUsageXYViewer.java | 6 ++++-- .../META-INF/MANIFEST.MF | 1 + .../viewers/histogram/NewHistogramViewer.java | 3 +++ .../vm/VirtualMachineAnalysisTest.java | 2 ++ .../vm/module/VirtualMachineCpuAnalysis.java | 3 +++ .../memory/UstMemoryAnalysisModule.java | 2 +- .../ui/views/memusage/MemoryUsageViewer.java | 6 ++++-- .../xml/ui/views/xychart/XmlXYViewer.java | 1 + .../ui/views/timegraph/XmlTimeGraphView.java | 4 ++++ .../core/tests/trace/TmfExperimentTest.java | 11 ++++++---- .../core/tests/trace/TmfTraceUtilsTest.java | 20 ++++++++++++------- .../core/statistics/TmfStatisticsModule.java | 3 ++- .../tmf/core/trace/TmfTraceUtils.java | 9 +++++---- .../trace/experiment/TmfExperimentUtils.java | 3 +++ .../statistics/TmfStatisticsViewer.java | 5 ++++- .../tmf/ui/views/callstack/CallStackView.java | 12 +++++++---- 20 files changed, 95 insertions(+), 50 deletions(-) diff --git a/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java b/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java index 9b98ad69ca..b9d9e76a9d 100644 --- a/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java +++ b/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/cpuusage/CpuUsageStateProviderTest.java @@ -72,26 +72,26 @@ public class CpuUsageStateProviderTest { */ @Before public void setUp() { - fTrace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlTraceStub(); IPath filePath = Activator.getAbsoluteFilePath(CPU_USAGE_FILE); - IStatus status = fTrace.validate(null, filePath.toOSString()); + IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { fail(status.getException().getMessage()); } try { - fTrace.initTrace(null, filePath.toOSString(), TmfEvent.class); + trace.initTrace(null, filePath.toOSString(), TmfEvent.class); } catch (TmfTraceException e) { fail(e.getMessage()); } - deleteSuppFiles(fTrace); - ((TmfTrace) fTrace).traceOpened(new TmfTraceOpenedSignal(this, fTrace, null)); + deleteSuppFiles(trace); + ((TmfTrace) trace).traceOpened(new TmfTraceOpenedSignal(this, trace, null)); /* * FIXME: Make sure this analysis is finished before running the CPU * analysis. This block can be removed once analysis dependency and * request precedence is implemented */ IAnalysisModule module = null; - for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(fTrace, KernelAnalysis.class)) { + for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) { module = mod; } assertNotNull(module); @@ -99,8 +99,9 @@ public class CpuUsageStateProviderTest { module.waitForCompletion(); /* End of the FIXME block */ - fModule = TmfTraceUtils.getAnalysisModuleOfClass(fTrace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID); + fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID); assertNotNull(fModule); + fTrace = trace; } /** diff --git a/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java b/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java index bcc5a67715..416937e92f 100644 --- a/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java +++ b/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelThreadInformationProviderTest.java @@ -73,27 +73,28 @@ public class KernelThreadInformationProviderTest { */ @Before public void setUp() { - fTrace = new TmfXmlTraceStub(); + ITmfTrace trace = new TmfXmlTraceStub(); IPath filePath = Activator.getAbsoluteFilePath(LTTNG_KERNEL_FILE); - IStatus status = fTrace.validate(null, filePath.toOSString()); + IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { fail(status.getException().getMessage()); } try { - fTrace.initTrace(null, filePath.toOSString(), TmfEvent.class); + trace.initTrace(null, filePath.toOSString(), TmfEvent.class); } catch (TmfTraceException e) { fail(e.getMessage()); } - deleteSuppFiles(fTrace); - ((TmfTrace) fTrace).traceOpened(new TmfTraceOpenedSignal(this, fTrace, null)); + deleteSuppFiles(trace); + ((TmfTrace) trace).traceOpened(new TmfTraceOpenedSignal(this, trace, null)); IAnalysisModule module = null; - for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(fTrace, KernelAnalysis.class)) { + for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) { module = mod; } assertNotNull(module); module.schedule(); module.waitForCompletion(); - fModule = TmfTraceUtils.getAnalysisModuleOfClass(fTrace, KernelAnalysis.class, KernelAnalysis.ID); + fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelAnalysis.class, KernelAnalysis.ID); + fTrace = trace; } /** diff --git a/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java b/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java index d2c86eabdf..054ab38948 100644 --- a/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java +++ b/org.eclipse.tracecompass.analysis.os.linux.core.tests/src/org/eclipse/tracecompass/analysis/os/linux/core/tests/kernelanalysis/KernelTidAspectTest.java @@ -88,27 +88,28 @@ public class KernelTidAspectTest { */ @Before public void setUp() { - fTrace = new TmfXmlTraceStubWithTidAspects(); + ITmfTrace trace = new TmfXmlTraceStubWithTidAspects(); IPath filePath = Activator.getAbsoluteFilePath(LTTNG_KERNEL_FILE); - IStatus status = fTrace.validate(null, filePath.toOSString()); + IStatus status = trace.validate(null, filePath.toOSString()); if (!status.isOK()) { fail(status.getException().getMessage()); } try { - fTrace.initTrace(null, filePath.toOSString(), TmfEvent.class); + trace.initTrace(null, filePath.toOSString(), TmfEvent.class); } catch (TmfTraceException e) { fail(e.getMessage()); } - deleteSuppFiles(fTrace); + deleteSuppFiles(trace); /* Make sure the Kernel analysis has run */ - ((TmfTrace) fTrace).traceOpened(new TmfTraceOpenedSignal(this, fTrace, null)); + ((TmfTrace) trace).traceOpened(new TmfTraceOpenedSignal(this, trace, null)); IAnalysisModule module = null; - for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(fTrace, KernelAnalysis.class)) { + for (IAnalysisModule mod : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) { module = mod; } assertNotNull(module); module.schedule(); module.waitForCompletion(); + fTrace = trace; } /** @@ -120,11 +121,11 @@ public class KernelTidAspectTest { } private void resolveNextEvent(ITmfContext context, Integer tid) { - - ITmfEvent event = fTrace.getNext(context); + ITmfTrace trace = fTrace; + ITmfEvent event = trace.getNext(context); assertNotNull(event); - Object tidObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(fTrace, KernelTidAspect.class, event); + Object tidObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(trace, KernelTidAspect.class, event); if (tid == null) { assertNull(tidObj); } else { diff --git a/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageComposite.java b/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageComposite.java index 8d6e0dfc21..77297f5338 100644 --- a/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageComposite.java +++ b/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageComposite.java @@ -195,7 +195,10 @@ public class CpuUsageComposite extends AbstractTmfTreeViewer { @Override public void initializeDataSource() { - fModule = TmfTraceUtils.getAnalysisModuleOfClass(getTrace(), KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID); + /* Should not be called while trace is still null */ + ITmfTrace trace = checkNotNull(getTrace()); + + fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID); if (fModule == null) { return; } diff --git a/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageXYViewer.java b/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageXYViewer.java index 4cdad34dde..1a332af310 100644 --- a/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageXYViewer.java +++ b/org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageXYViewer.java @@ -24,6 +24,7 @@ import org.eclipse.tracecompass.analysis.os.linux.core.cpuusage.KernelCpuUsageAn import org.eclipse.tracecompass.internal.analysis.os.linux.ui.Activator; import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem; import org.eclipse.tracecompass.statesystem.core.exceptions.StateValueTypeException; +import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXLineChartViewer; @@ -63,8 +64,9 @@ public class CpuUsageXYViewer extends TmfCommonXLineChartViewer { @Override protected void initializeDataSource() { - if (getTrace() != null) { - fModule = TmfTraceUtils.getAnalysisModuleOfClass(getTrace(), KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID); + ITmfTrace trace = getTrace(); + if (trace != null) { + fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, KernelCpuUsageAnalysis.class, KernelCpuUsageAnalysis.ID); if (fModule == null) { return; } diff --git a/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF b/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF index b81b4ee755..737c961bdb 100644 --- a/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF +++ b/org.eclipse.tracecompass.examples/META-INF/MANIFEST.MF @@ -7,6 +7,7 @@ Bundle-Localization: plugin Bundle-Activator: org.eclipse.tracecompass.examples.ui.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, + org.eclipse.tracecompass.common.core, org.eclipse.tracecompass.tmf.core, org.eclipse.tracecompass.tmf.ui Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java b/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java index 61d0ba3e29..413d33b881 100644 --- a/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java +++ b/org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/viewers/histogram/NewHistogramViewer.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.tracecompass.examples.ui.viewers.histogram; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.util.Arrays; import java.util.List; @@ -74,6 +76,7 @@ public class NewHistogramViewer extends TmfBarChartViewer { /* Add the values for each trace */ for (ITmfTrace trace : TmfTraceManager.getTraceSet(getTrace())) { + trace = checkNotNull(trace); /* Retrieve the statistics object */ final TmfStatisticsModule statsMod = TmfTraceUtils.getAnalysisModuleOfClass(trace, TmfStatisticsModule.class, TmfStatisticsModule.ID); diff --git a/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/vm/VirtualMachineAnalysisTest.java b/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/vm/VirtualMachineAnalysisTest.java index d6c39501e5..469b840e63 100644 --- a/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/vm/VirtualMachineAnalysisTest.java +++ b/org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/analysis/vm/VirtualMachineAnalysisTest.java @@ -12,6 +12,7 @@ package org.eclipse.tracecompass.lttng2.kernel.core.tests.analysis.vm; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; @@ -96,6 +97,7 @@ public class VirtualMachineAnalysisTest { * is implemented, we can remove this */ for (ITmfTrace trace : experiment.getTraces()) { + trace = checkNotNull(trace); for (KernelAnalysis module : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) { module.schedule(); module.waitForCompletion(); diff --git a/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/analysis/vm/module/VirtualMachineCpuAnalysis.java b/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/analysis/vm/module/VirtualMachineCpuAnalysis.java index b085665f56..2a91637537 100644 --- a/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/analysis/vm/module/VirtualMachineCpuAnalysis.java +++ b/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/internal/lttng2/kernel/core/analysis/vm/module/VirtualMachineCpuAnalysis.java @@ -13,6 +13,8 @@ package org.eclipse.tracecompass.internal.lttng2.kernel.core.analysis.vm.module; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.util.Comparator; import java.util.HashSet; import java.util.Set; @@ -94,6 +96,7 @@ public class VirtualMachineCpuAnalysis extends TmfStateSystemAnalysisModule { Set modules = new HashSet<>(); /* Depends on the LTTng Kernel analysis modules */ for (ITmfTrace trace : TmfTraceManager.getTraceSet(getTrace())) { + trace = checkNotNull(trace); for (KernelAnalysis module : TmfTraceUtils.getAnalysisModulesOfClass(trace, KernelAnalysis.class)) { modules.add(module); } diff --git a/org.eclipse.tracecompass.lttng2.ust.core/src/org/eclipse/tracecompass/lttng2/ust/core/analysis/memory/UstMemoryAnalysisModule.java b/org.eclipse.tracecompass.lttng2.ust.core/src/org/eclipse/tracecompass/lttng2/ust/core/analysis/memory/UstMemoryAnalysisModule.java index 6c7f8c6cfe..faa5262b02 100644 --- a/org.eclipse.tracecompass.lttng2.ust.core/src/org/eclipse/tracecompass/lttng2/ust/core/analysis/memory/UstMemoryAnalysisModule.java +++ b/org.eclipse.tracecompass.lttng2.ust.core/src/org/eclipse/tracecompass/lttng2/ust/core/analysis/memory/UstMemoryAnalysisModule.java @@ -42,7 +42,7 @@ public class UstMemoryAnalysisModule extends TmfStateSystemAnalysisModule { /** * Analysis ID, it should match that in the plugin.xml file */ - public static String ID = "org.eclipse.linuxtools.lttng2.ust.analysis.memory"; //$NON-NLS-1$ + public static final @NonNull String ID = "org.eclipse.linuxtools.lttng2.ust.analysis.memory"; //$NON-NLS-1$ private static final ImmutableSet REQUIRED_EVENTS = ImmutableSet.of( UstMemoryStrings.MALLOC, diff --git a/org.eclipse.tracecompass.lttng2.ust.ui/src/org/eclipse/tracecompass/internal/lttng2/ust/ui/views/memusage/MemoryUsageViewer.java b/org.eclipse.tracecompass.lttng2.ust.ui/src/org/eclipse/tracecompass/internal/lttng2/ust/ui/views/memusage/MemoryUsageViewer.java index 3a51cd6357..a6167e3c8f 100644 --- a/org.eclipse.tracecompass.lttng2.ust.ui/src/org/eclipse/tracecompass/internal/lttng2/ust/ui/views/memusage/MemoryUsageViewer.java +++ b/org.eclipse.tracecompass.lttng2.ust.ui/src/org/eclipse/tracecompass/internal/lttng2/ust/ui/views/memusage/MemoryUsageViewer.java @@ -29,6 +29,7 @@ import org.eclipse.tracecompass.statesystem.core.exceptions.StateValueTypeExcept import org.eclipse.tracecompass.statesystem.core.exceptions.TimeRangeException; import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue; import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule; +import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils; import org.eclipse.tracecompass.tmf.ui.viewers.xycharts.linecharts.TmfCommonXLineChartViewer; @@ -63,8 +64,9 @@ public class MemoryUsageViewer extends TmfCommonXLineChartViewer { @Override protected void initializeDataSource() { - if (getTrace() != null) { - fModule = TmfTraceUtils.getAnalysisModuleOfClass(getTrace(), TmfStateSystemAnalysisModule.class, UstMemoryAnalysisModule.ID); + ITmfTrace trace = getTrace(); + if (trace != null) { + fModule = TmfTraceUtils.getAnalysisModuleOfClass(trace, TmfStateSystemAnalysisModule.class, UstMemoryAnalysisModule.ID); if (fModule == null) { return; } diff --git a/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/xychart/XmlXYViewer.java b/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/xychart/XmlXYViewer.java index 5f836f44d1..7d5c04ca99 100644 --- a/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/xychart/XmlXYViewer.java +++ b/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/xychart/XmlXYViewer.java @@ -342,6 +342,7 @@ public class XmlXYViewer extends TmfCommonXLineChartViewer { } } else { for (String moduleId : analysisIds) { + moduleId = checkNotNull(moduleId); ITmfAnalysisModuleWithStateSystems module = TmfTraceUtils.getAnalysisModuleOfClass(trace, ITmfAnalysisModuleWithStateSystems.class, moduleId); if (module != null) { stateSystemModules.add(module); diff --git a/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java b/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java index 6a842a6273..74bdaeba40 100644 --- a/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java +++ b/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/views/timegraph/XmlTimeGraphView.java @@ -13,6 +13,8 @@ package org.eclipse.tracecompass.tmf.analysis.xml.ui.views.timegraph; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -245,6 +247,7 @@ public class XmlTimeGraphView extends AbstractTimeGraphView { List entries = XmlUtils.getChildElements(viewElement, TmfXmlUiStrings.ENTRY_ELEMENT); Set entryList = new TreeSet<>(getEntryComparator()); for (ITmfTrace aTrace : TmfTraceManager.getTraceSet(trace)) { + aTrace = checkNotNull(aTrace); if (monitor.isCanceled()) { return; } @@ -259,6 +262,7 @@ public class XmlTimeGraphView extends AbstractTimeGraphView { } } else { for (String moduleId : analysisIds) { + moduleId = checkNotNull(moduleId); ITmfAnalysisModuleWithStateSystems module = TmfTraceUtils.getAnalysisModuleOfClass(aTrace, ITmfAnalysisModuleWithStateSystems.class, moduleId); if (module != null) { stateSystemModules.add(module); diff --git a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfExperimentTest.java b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfExperimentTest.java index 008d5826c6..e3f70bd2fc 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfExperimentTest.java +++ b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfExperimentTest.java @@ -195,14 +195,17 @@ public class TmfExperimentTest { @Test public void testGetAnalysisModules() { + TmfExperiment experiment = fExperiment; + assertNotNull(experiment); + /* There should not be any modules at this point */ - Iterable modules = fExperiment.getAnalysisModules(); + Iterable modules = experiment.getAnalysisModules(); assertFalse(modules.iterator().hasNext()); /* Open the experiment, the modules should be populated */ - fExperiment.traceOpened(new TmfTraceOpenedSignal(this, fExperiment, null)); - modules = fExperiment.getAnalysisModules(); - Iterable testModules = TmfTraceUtils.getAnalysisModulesOfClass(fExperiment, TestExperimentAnalysis.class); + experiment.traceOpened(new TmfTraceOpenedSignal(this, experiment, null)); + modules = experiment.getAnalysisModules(); + Iterable testModules = TmfTraceUtils.getAnalysisModulesOfClass(experiment, TestExperimentAnalysis.class); assertTrue(modules.iterator().hasNext()); assertTrue(testModules.iterator().hasNext()); } diff --git a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java index 30a4286474..cd5b4f6b7d 100644 --- a/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java +++ b/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/trace/TmfTraceUtilsTest.java @@ -127,10 +127,13 @@ public class TmfTraceUtilsTest { */ @Test public void testGetModulesByClass() { + TmfTrace trace = fTrace; + assertNotNull(trace); + /* Open the trace, the modules should be populated */ - fTrace.traceOpened(new TmfTraceOpenedSignal(this, fTrace, null)); + trace.traceOpened(new TmfTraceOpenedSignal(this, trace, null)); - Iterable testModules = TmfTraceUtils.getAnalysisModulesOfClass(fTrace, TestAnalysis.class); + Iterable testModules = TmfTraceUtils.getAnalysisModulesOfClass(trace, TestAnalysis.class); assertTrue(testModules.iterator().hasNext()); int count = 0; @@ -144,9 +147,9 @@ public class TmfTraceUtilsTest { */ assertTrue(count >= 2); - TestAnalysis module = TmfTraceUtils.getAnalysisModuleOfClass(fTrace, TestAnalysis.class, AnalysisManagerTest.MODULE_PARAM); + TestAnalysis module = TmfTraceUtils.getAnalysisModuleOfClass(trace, TestAnalysis.class, AnalysisManagerTest.MODULE_PARAM); assertNotNull(module); - IAnalysisModule traceModule = fTrace.getAnalysisModule(AnalysisManagerTest.MODULE_PARAM); + IAnalysisModule traceModule = trace.getAnalysisModule(AnalysisManagerTest.MODULE_PARAM); assertNotNull(traceModule); assertEquals(module, traceModule); @@ -157,12 +160,15 @@ public class TmfTraceUtilsTest { */ @Test public void testResolveEventAspectsOfClassForEvent() { - ITmfContext context = fTrace.seekEvent(0L); - ITmfEvent event = fTrace.getNext(context); + TmfTrace trace = fTrace; + assertNotNull(trace); + + ITmfContext context = trace.seekEvent(0L); + ITmfEvent event = trace.getNext(context); assertNotNull(event); /* Make sure the CPU aspect returns the expected value */ - Object cpuObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(fTrace, TmfCpuAspect.class, event); + Object cpuObj = TmfTraceUtils.resolveEventAspectOfClassForEvent(trace, TmfCpuAspect.class, event); assertNotNull(cpuObj); assertEquals(1, cpuObj); diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statistics/TmfStatisticsModule.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statistics/TmfStatisticsModule.java index 4c601028e5..4843cc6a01 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statistics/TmfStatisticsModule.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statistics/TmfStatisticsModule.java @@ -18,6 +18,7 @@ import java.util.concurrent.CountDownLatch; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem; import org.eclipse.tracecompass.tmf.core.analysis.TmfAbstractAnalysisModule; @@ -35,7 +36,7 @@ public class TmfStatisticsModule extends TmfAbstractAnalysisModule implements ITmfAnalysisModuleWithStateSystems { /** ID of this analysis module */ - public static final String ID = "org.eclipse.linuxtools.tmf.core.statistics.analysis"; //$NON-NLS-1$ + public static final @NonNull String ID = "org.eclipse.linuxtools.tmf.core.statistics.analysis"; //$NON-NLS-1$ /** The trace's statistics */ private ITmfStatistics fStatistics = null; diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTraceUtils.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTraceUtils.java index 74312a70f8..3f810d9603 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTraceUtils.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/TmfTraceUtils.java @@ -15,7 +15,7 @@ package org.eclipse.tracecompass.tmf.core.trace; import java.util.HashSet; import java.util.Set; -import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; @@ -26,6 +26,7 @@ import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect; * * @author Alexandre Montplaisir */ +@NonNullByDefault public final class TmfTraceUtils { private TmfTraceUtils() { @@ -65,7 +66,7 @@ public final class TmfTraceUtils { * Returned modules must extend this class * @return List of modules of class moduleClass */ - public static @NonNull Iterable getAnalysisModulesOfClass(ITmfTrace trace, Class moduleClass) { + public static Iterable getAnalysisModulesOfClass(ITmfTrace trace, Class moduleClass) { Iterable analysisModules = trace.getAnalysisModules(); Set modules = new HashSet<>(); for (IAnalysisModule module : analysisModules) { @@ -91,8 +92,8 @@ public final class TmfTraceUtils { * {@link ITmfEventAspect#resolve(ITmfEvent)} that returns non null * for the event or {@code null} otherwise */ - public static Object resolveEventAspectOfClassForEvent( - ITmfTrace trace, Class aspectClass, @NonNull ITmfEvent event) { + public static @Nullable Object resolveEventAspectOfClassForEvent( + ITmfTrace trace, Class aspectClass, ITmfEvent event) { Iterable aspects = trace.getEventAspects(); for (ITmfEventAspect aspect : aspects) { if (aspectClass.isAssignableFrom(aspect.getClass())) { diff --git a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/experiment/TmfExperimentUtils.java b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/experiment/TmfExperimentUtils.java index 74b8d0ee80..cbf2a81a3c 100644 --- a/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/experiment/TmfExperimentUtils.java +++ b/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/trace/experiment/TmfExperimentUtils.java @@ -12,6 +12,8 @@ package org.eclipse.tracecompass.tmf.core.trace.experiment; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.util.Collection; import java.util.HashSet; @@ -87,6 +89,7 @@ public final class TmfExperimentUtils { */ public static @Nullable T getAnalysisModuleOfClassForHost(TmfExperiment experiment, String hostId, Class moduleClass) { for (ITmfTrace trace : getTracesFromHost(experiment, hostId)) { + trace = checkNotNull(trace); for (T module : TmfTraceUtils.getAnalysisModulesOfClass(trace, moduleClass)) { return module; } diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/statistics/TmfStatisticsViewer.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/statistics/TmfStatisticsViewer.java index f65d06595b..78185496b9 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/statistics/TmfStatisticsViewer.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/statistics/TmfStatisticsViewer.java @@ -15,6 +15,8 @@ package org.eclipse.tracecompass.tmf.ui.viewers.statistics; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -632,7 +634,8 @@ public class TmfStatisticsViewer extends TmfViewer { fTimeRangePartial = timeRange; } - for (final ITmfTrace aTrace : TmfTraceManager.getTraceSet(trace)) { + for (ITmfTrace aTrace : TmfTraceManager.getTraceSet(trace)) { + aTrace = checkNotNull(aTrace); if (!isListeningTo(aTrace)) { continue; } diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java index 293bd03a64..8f9f9c079a 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/callstack/CallStackView.java @@ -14,6 +14,8 @@ package org.eclipse.tracecompass.tmf.ui.views.callstack; +import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; + import java.io.File; import java.util.ArrayList; import java.util.Collections; @@ -29,6 +31,7 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; @@ -455,11 +458,11 @@ public class CallStackView extends TmfView { } private class BuildThread extends Thread { - private final ITmfTrace fBuildTrace; + private final @NonNull ITmfTrace fBuildTrace; private final ITmfTrace fParentTrace; private final IProgressMonitor fMonitor; - public BuildThread(ITmfTrace trace, ITmfTrace parentTrace) { + public BuildThread(@NonNull ITmfTrace trace, ITmfTrace parentTrace) { super("CallStackView build"); //$NON-NLS-1$ fBuildTrace = trace; fParentTrace = parentTrace; @@ -833,6 +836,7 @@ public class CallStackView extends TmfView { refresh(); synchronized (fBuildThreadMap) { for (ITmfTrace trace : TmfTraceManager.getTraceSet(fTrace)) { + trace = checkNotNull(trace); BuildThread buildThread = new BuildThread(trace, fTrace); fBuildThreadMap.put(trace, buildThread); buildThread.start(); @@ -846,7 +850,7 @@ public class CallStackView extends TmfView { } } - private void buildThreadList(final ITmfTrace trace, final ITmfTrace parentTrace, IProgressMonitor monitor) { + private void buildThreadList(final @NonNull ITmfTrace trace, final ITmfTrace parentTrace, IProgressMonitor monitor) { if (monitor.isCanceled()) { return; } @@ -1314,7 +1318,7 @@ public class CallStackView extends TmfView { return fPrevEventAction; } - private static @Nullable AbstractCallStackAnalysis getCallStackModule(ITmfTrace trace) { + private static @Nullable AbstractCallStackAnalysis getCallStackModule(@NonNull ITmfTrace trace) { /* * Since we cannot know the exact analysis ID (in separate plugins), we * will search using the analysis type. -- 2.34.1