analysis: bug 494786. Clear process selection when switching trace
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.os.linux.ui / src / org / eclipse / tracecompass / internal / analysis / os / linux / ui / views / cpuusage / CpuUsageComposite.java
index 358f6a78d7a756fdb5cef6969efdd16d67312664..aa3fed88f1706f78220021182a1057e82c6860b0 100644 (file)
@@ -35,8 +35,12 @@ import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
 import org.eclipse.tracecompass.statesystem.core.StateSystemUtils;
 import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException;
 import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException;
+import org.eclipse.tracecompass.statesystem.core.exceptions.TimeRangeException;
 import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval;
 import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue;
+import org.eclipse.tracecompass.tmf.core.signal.TmfSignalHandler;
+import org.eclipse.tracecompass.tmf.core.signal.TmfTraceOpenedSignal;
+import org.eclipse.tracecompass.tmf.core.signal.TmfTraceSelectedSignal;
 import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
@@ -227,7 +231,7 @@ public class CpuUsageComposite extends AbstractTmfTreeViewer {
         }
 
         boolean complete = false;
-        long currentEnd = start;
+        long currentEnd = Math.max(start, ss.getStartTime());
 
         while (!complete && currentEnd < end) {
             complete = ss.waitUntilBuilt(BUILD_UPDATE_TIMEOUT);
@@ -293,7 +297,7 @@ public class CpuUsageComposite extends AbstractTmfTreeViewer {
                     try {
                         execNameQuark = kernelSs.getQuarkRelative(tidQuark, Attributes.EXEC_NAME);
                         execNameIntervals = StateSystemUtils.queryHistoryRange(kernelSs, execNameQuark, getStartTime(), getEndTime());
-                    } catch (AttributeNotFoundException e) {
+                    } catch (TimeRangeException | AttributeNotFoundException e) {
                         /*
                          * No information on this thread (yet?), skip it for now
                          */
@@ -365,4 +369,18 @@ public class CpuUsageComposite extends AbstractTmfTreeViewer {
         updateContent(getWindowStartTime(), getWindowEndTime(), false);
     }
 
+    @Override
+    @TmfSignalHandler
+    public void traceSelected(TmfTraceSelectedSignal signal) {
+        setSelectedThread(null);
+        super.traceSelected(signal);
+    }
+
+    @Override
+    @TmfSignalHandler
+    public void traceOpened(TmfTraceOpenedSignal signal) {
+        setSelectedThread(null);
+        super.traceOpened(signal);
+    }
+
 }
This page took 0.027767 seconds and 5 git commands to generate.