Bug 575843 - Handle arrows/annotations in CallStackProvider#fetchTooltip

Return an empty map instead if the fetchTooltip method is called for an
arrow or annotation object.

[Fixed] Bug 575843 - Handle arrows/annotations in callstack fetchTooltip

Change-Id: I6a1e5a6cbd0805be0f27f3bb7d775b117a4e2a34
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/185061
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
diff --git a/analysis/org.eclipse.tracecompass.analysis.profiling.core/src/org/eclipse/tracecompass/internal/analysis/profiling/core/callstack/provider/CallStackDataProvider.java b/analysis/org.eclipse.tracecompass.analysis.profiling.core/src/org/eclipse/tracecompass/internal/analysis/profiling/core/callstack/provider/CallStackDataProvider.java
index 521fccf..9edc9f4 100644
--- a/analysis/org.eclipse.tracecompass.analysis.profiling.core/src/org/eclipse/tracecompass/internal/analysis/profiling/core/callstack/provider/CallStackDataProvider.java
+++ b/analysis/org.eclipse.tracecompass.analysis.profiling.core/src/org/eclipse/tracecompass/internal/analysis/profiling/core/callstack/provider/CallStackDataProvider.java
@@ -29,6 +29,7 @@
 import org.eclipse.tracecompass.analysis.profiling.core.base.FlameDefaultPalette;
 import org.eclipse.tracecompass.analysis.profiling.core.callstack.CallStackAnalysis;
 import org.eclipse.tracecompass.internal.analysis.profiling.core.Activator;
+import org.eclipse.tracecompass.internal.provisional.tmf.core.model.annotations.IAnnotation;
 import org.eclipse.tracecompass.internal.tmf.core.analysis.callsite.CallsiteAnalysis;
 import org.eclipse.tracecompass.internal.tmf.core.model.filters.FetchParametersUtils;
 import org.eclipse.tracecompass.internal.tmf.core.model.timegraph.AbstractTimeGraphDataProvider;
@@ -431,6 +432,13 @@
         Map<String, String> tooltips = new HashMap<>();
         List<@NonNull Long> selected = DataProviderParameterUtils.extractSelectedItems(parameters);
         List<@NonNull Long> times = DataProviderParameterUtils.extractTimeRequested(parameters);
+
+        // This data provider doesn't have any annotations or arrows
+        Object element = parameters.get(DataProviderParameterUtils.REQUESTED_ELEMENT_KEY);
+        if (element instanceof IAnnotation || element instanceof ITimeGraphArrow) {
+            return new TmfModelResponse<>(tooltips, ITmfResponse.Status.COMPLETED, CommonStatusMessage.COMPLETED);
+        }
+
         if (selected != null && times != null) {
             Map<@NonNull Long, @NonNull Integer> md = getSelectedEntries(selected);
             ITmfTrace trace = getTrace();