diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java index cbaac0943070806f70d1926aec677bca4117aded..d4d69ca565f168ab62a49766884eae516e0358b2 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java @@ -250,6 +250,7 @@ class PluginManagerImpl implements PluginManager, Service { private class Callback implements PluginCallback { private final TransportId id; + private final AtomicBoolean enabled = new AtomicBoolean(false); private Callback(TransportId id) { this.id = id; @@ -295,12 +296,14 @@ class PluginManagerImpl implements PluginManager, Service { @Override public void transportEnabled() { - eventBus.broadcast(new TransportEnabledEvent(id)); + if (!enabled.getAndSet(true)) + eventBus.broadcast(new TransportEnabledEvent(id)); } @Override public void transportDisabled() { - eventBus.broadcast(new TransportDisabledEvent(id)); + if (enabled.getAndSet(false)) + eventBus.broadcast(new TransportDisabledEvent(id)); } @Override