diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java b/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java index 8af13381..4a7fbee5 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java @@ -489,17 +489,17 @@ public class Spider implements Runnable, Task { } private void waitNewUrl() { + newUrlLock.lock(); try { - newUrlLock.lock(); //double check if (threadAlive.get() == 0 && exitWhenComplete) { return; } - try { - newUrlCondition.await(); - } catch (InterruptedException e) { - } - } finally { + newUrlCondition.await(); + } catch (InterruptedException e) { + logger.warn("waitNewUrl - interrupted, error {}", e); + } + finally { newUrlLock.unlock(); } }