X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2Floader%2FChainWatcher.java;h=3d30f2615edfc140405d9237064e891134b05cdd;hb=13a4fe6bece23b3dd561de657cf9bb7ea307e2b6;hp=4a18a3e875720e72e07f0ae1e635f22905fcd8be;hpb=23b98110245b828e4c0eaef520335019f7ec6e3c;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/reactor/loader/ChainWatcher.java b/src/main/java/net/pterodactylus/reactor/loader/ChainWatcher.java index 4a18a3e..3d30f26 100644 --- a/src/main/java/net/pterodactylus/reactor/loader/ChainWatcher.java +++ b/src/main/java/net/pterodactylus/reactor/loader/ChainWatcher.java @@ -21,8 +21,10 @@ import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.concurrent.TimeUnit; import net.pterodactylus.reactor.Reaction; @@ -156,6 +158,7 @@ public class ChainWatcher extends AbstractExecutionThreadService { logger.debug(String.format("Found %d enabled Chain(s).", enabledChains.size())); /* check for removed chains. */ + Set chainsToRemove = new HashSet(); for (Entry loadedChain : loadedChains.entrySet()) { /* skip chains that still exist. */ @@ -165,7 +168,12 @@ public class ChainWatcher extends AbstractExecutionThreadService { logger.info(String.format("Removing Chain: %s", loadedChain.getKey())); engine.removeReaction(loadedChain.getKey()); - loadedChains.remove(loadedChain.getKey()); + chainsToRemove.add(loadedChain.getKey()); + } + + /* remove removed chains from loaded chains. */ + for (String reactionName : chainsToRemove) { + loadedChains.remove(reactionName); } /* check for new chains. */