From 152cad25b88dd0e432fb913967c36cadf380ad48 Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Fri, 11 Apr 2025 16:40:59 -0400 Subject: [PATCH] trace-server: remove derived dp instances when deleting dp configs fixes #178 Signed-off-by: Bernd Hufmann --- .../jersey/rest/core/services/DataProviderService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java index 9081b55ae..2e8587876 100644 --- a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java +++ b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java @@ -1318,7 +1318,16 @@ public Response deleteDerivedProvider( if (configurator == null) { return Response.status(Status.NOT_FOUND).entity(NO_SUCH_PROVIDER).build(); } + + // Get all descriptors of all corresponding derived data providers + List allDerivedDps = manager.getAvailableProviders(experiment, derivedDescriptor.getConfiguration()); + + // Remove any derived data provider instances stored in the manager + allDerivedDps.forEach(desc -> manager.removeDataProvider(experiment, desc.getId())); + + // Clean-up configuration configurator.removeDataProviderDescriptor(experiment, derivedDescriptor); + return Response.ok(derivedDescriptor).build(); } catch (TmfConfigurationException e) { return Response.status(Status.BAD_REQUEST).entity(e.getMessage()).build();