From a047418f7c0765d116cf24b6a4629ace5388dac6 Mon Sep 17 00:00:00 2001 From: Adrien Nguyen Date: Wed, 24 May 2017 01:23:59 +0200 Subject: [PATCH] fix: avoid benching already benched proxy. --- .../com/kinancity/core/proxy/ProxyManager.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/KinanCity-core/src/main/java/com/kinancity/core/proxy/ProxyManager.java b/KinanCity-core/src/main/java/com/kinancity/core/proxy/ProxyManager.java index 400821b..b9c8cd4 100644 --- a/KinanCity-core/src/main/java/com/kinancity/core/proxy/ProxyManager.java +++ b/KinanCity-core/src/main/java/com/kinancity/core/proxy/ProxyManager.java @@ -71,15 +71,16 @@ public synchronized Optional getEligibleProxy() { } public void benchProxy(ProxyInfo proxy) { - proxies.remove(proxy); - proxyBench.add(proxy); - logger.warn("Proxy [{}] moved out of rotation, {} proxy left",proxy, proxies.size()); - - if(recycler != null && getNbProxyInRotation() == 0){ - recycler.setFastMode(true); - recycler.checkAndRecycleAllBenched(); + if(proxies.contains(proxy) && !proxyBench.contains(proxy)){ + proxies.remove(proxy); + proxyBench.add(proxy); + logger.warn("Proxy [{}] moved out of rotation, {} proxy left",proxy, proxies.size()); + + if(recycler != null && getNbProxyInRotation() == 0){ + recycler.setFastMode(true); + recycler.checkAndRecycleAllBenched(); + } } - } public int getNbProxyInRotation(){