void disposeInstrumenter(Object key, boolean cleanupRequired) { AbstractInstrumenter disposedInstrumenter = instrumenterMap.remove(key); if (disposedInstrumenter == null) { throw new AssertionError("Instrumenter already disposed."); } if (TRACE) { trace("BEGIN: Dispose instrumenter %n", key); } disposedInstrumenter.dispose(); if (cleanupRequired) { Collection<EventBinding.Source<?>> disposedExecutionBindings = filterBindingsForInstrumenter(executionBindings, disposedInstrumenter); if (!disposedExecutionBindings.isEmpty()) { visitRoots(executedRoots, new DisposeWrappersWithBindingVisitor(disposedExecutionBindings)); } disposeBindingsBulk(disposedExecutionBindings); disposeBindingsBulk(filterBindingsForInstrumenter(sourceSectionBindings, disposedInstrumenter)); disposeBindingsBulk(filterBindingsForInstrumenter(sourceBindings, disposedInstrumenter)); disposeOutputBindingsBulk(out, outputStdBindings); disposeOutputBindingsBulk(err, outputErrBindings); } if (TRACE) { trace("END: Disposed instrumenter %n", key); } }
void disposeInstrumenter(Object key, boolean cleanupRequired) { AbstractInstrumenter disposedInstrumenter = instrumenterMap.remove(key); if (disposedInstrumenter == null) { throw new AssertionError("Instrumenter already disposed."); } if (TRACE) { trace("BEGIN: Dispose instrumenter %n", key); } disposedInstrumenter.dispose(); if (cleanupRequired) { Collection<EventBinding.Source<?>> disposedExecutionBindings = filterBindingsForInstrumenter(executionBindings, disposedInstrumenter); if (!disposedExecutionBindings.isEmpty()) { visitRoots(executedRoots, new DisposeWrappersWithBindingVisitor(disposedExecutionBindings)); } disposeBindingsBulk(disposedExecutionBindings); disposeBindingsBulk(filterBindingsForInstrumenter(sourceSectionBindings, disposedInstrumenter)); disposeBindingsBulk(filterBindingsForInstrumenter(sourceBindings, disposedInstrumenter)); disposeOutputBindingsBulk(out, outputStdBindings); disposeOutputBindingsBulk(err, outputErrBindings); } if (TRACE) { trace("END: Disposed instrumenter %n", key); } }