Skip to content

Commit

Permalink
Close all trackers and clear the map on PlexusFramework close
Browse files Browse the repository at this point in the history
  • Loading branch information
laeubi committed Apr 27, 2024
1 parent abb7cc3 commit c95adfa
Showing 1 changed file with 6 additions and 4 deletions.
Expand Up @@ -62,7 +62,7 @@ class PlexusConnectFramework //
private final ClassRealm realm;
final PlexusFrameworkConnectServiceFactory factory;
final boolean foreign;
private ServiceTracker<LogReaderService, LogReaderService> serviceTracker;
private ServiceTracker<LogReaderService, LogReaderService> logReaderServiceTracker;
private String storagePath;

PlexusConnectFramework(Framework framework, Logger logger, PlexusFrameworkConnectServiceFactory factory,
Expand Down Expand Up @@ -336,7 +336,7 @@ private static boolean isOnlyDebug(LogEntry entry) {
@Override
public void start(BundleContext context) {
context.addFrameworkListener(this);
serviceTracker = new ServiceTracker<>(context, LogReaderService.class, new ServiceTrackerCustomizer<>() {
logReaderServiceTracker = new ServiceTracker<>(context, LogReaderService.class, new ServiceTrackerCustomizer<>() {

@Override
public LogReaderService addingService(ServiceReference<LogReaderService> reference) {
Expand All @@ -357,12 +357,14 @@ public void removedService(ServiceReference<LogReaderService> reference, LogRead
context.ungetService(reference);
}
});
serviceTracker.open();
logReaderServiceTracker.open();
}

@Override
public void stop(BundleContext context) {
context.removeFrameworkListener(this);
serviceTracker.close();
logReaderServiceTracker.close();
trackerMap.values().forEach(ServiceTracker::close);
trackerMap.clear();
}
}

0 comments on commit c95adfa

Please sign in to comment.