diff options
author | Patrick Tasse | 2019-06-20 21:33:10 +0000 |
---|---|---|
committer | Patrick Tasse | 2019-06-25 20:18:31 +0000 |
commit | 86bcd4b37a8673ce3a9d319ce2d4f0692c1f0f0c (patch) | |
tree | f3a2c30380e5f310abffff7e3aaf9055c5ef4b6b | |
parent | df1ab9fd861de386885f51f950ec55fd1368aba7 (diff) | |
download | org.eclipse.tracecompass-86bcd4b37a8673ce3a9d319ce2d4f0692c1f0f0c.tar.gz org.eclipse.tracecompass-86bcd4b37a8673ce3a9d319ce2d4f0692c1f0f0c.tar.xz org.eclipse.tracecompass-86bcd4b37a8673ce3a9d319ce2d4f0692c1f0f0c.zip |
tmf: Validate element under trace folder in TmfOpenTraceHelper
When opening an experiment trace, if the underlying trace has been
removed from the file system in the background, the call to
TmfTraceElement.getElementUnderTraceFolder() will return itself, e.g.
the trace under the experiment element.
In that case the OpenProjectElementJob can later fail with a strange
error message (e.g. 'Path must be a valid directory' for a CTF trace),
because the experiment trace's resource (a dummy empty file) is being
used.
The code now checks for this condition early and fails with the message
'Trace <element path> not found'.
Change-Id: I17b3b075355c5f972a5e5b126c92d485fc11f630
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/144582
Tested-by: CI Bot
Reviewed-by: Simon Delisle <simon.delisle@ericsson.com>
Tested-by: Simon Delisle <simon.delisle@ericsson.com>
-rw-r--r-- | tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfOpenTraceHelper.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfOpenTraceHelper.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfOpenTraceHelper.java index d0652df68e..511b17c26e 100644 --- a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfOpenTraceHelper.java +++ b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/model/TmfOpenTraceHelper.java @@ -311,7 +311,13 @@ public class TmfOpenTraceHelper { // the traces folder element = element.getElementUnderTraceFolder(); - ITmfTrace trace = openTraceElement(element); + ITmfTrace trace = null; + if (element.getParent() instanceof TmfExperimentElement) { + TraceUtils.displayErrorMsg(NLS.bind(Messages.TmfOpenTraceHelper_OpenElement, element.getTypeName()), + NLS.bind(Messages.TmfOpenTraceHelper_TraceNotFound, element.getElementPath())); + } else { + trace = openTraceElement(element); + } if (trace == null) { for (int j = 0; j < i; j++) { |