Skip to content

Commit 7226f6f

Browse files
committed
xml: Don't return duplicate data provider descriptors from xml manager
Fixes #290 and eclipse-cdt-cloud/theia-trace-extension#1204 Signed-off-by: Bernd Hufmann <[email protected]>
1 parent 2df4e83 commit 7226f6f

File tree

1 file changed

+4
-1
lines changed
  • tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/core/output

1 file changed

+4
-1
lines changed

tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/core/output/XmlDataProviderManager.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.ArrayList;
1515
import java.util.Collection;
1616
import java.util.HashMap;
17+
import java.util.HashSet;
1718
import java.util.List;
1819
import java.util.Map;
1920
import java.util.Objects;
@@ -374,6 +375,7 @@ public void refreshDataProviderFactories() {
374375
*/
375376
public List<IDataProviderDescriptor> getXmlDataProviderDescriptors(ITmfTrace trace, Set<OutputType> types) {
376377
List<IDataProviderDescriptor> descriptors = new ArrayList<>();
378+
Set<String> existingDps = new HashSet<>();
377379
for (ITmfTrace tr : TmfTraceManager.getTraceSetWithExperiment(trace)) {
378380
Map<String, IAnalysisModuleHelper> modules = TmfAnalysisManager.getAnalysisModules(tr.getClass());
379381
for (OutputType viewType : types) {
@@ -392,11 +394,12 @@ public List<IDataProviderDescriptor> getXmlDataProviderDescriptors(ITmfTrace tra
392394
builder.setProviderType(ProviderType.TIME_GRAPH);
393395
}
394396
for (String id : element.getAnalyses()) {
395-
if (modules.containsKey(id)) {
397+
if (modules.containsKey(id) && !existingDps.contains(elemId)) {
396398
String analysisName = Objects.requireNonNull(modules.get(id)).getName();
397399
builder.setName(analysisName + ": " + label); //$NON-NLS-1$
398400
builder.setDescription(label + " provided by Analysis module: " + analysisName); //$NON-NLS-1$
399401
descriptors.add(builder.build());
402+
existingDps.add(elemId);
400403
break;
401404
}
402405
}

0 commit comments

Comments
 (0)