From 253a45341345dbd7b384b9106228b71dc8200944 Mon Sep 17 00:00:00 2001 From: orbiter Date: Tue, 26 Feb 2008 14:05:43 +0000 Subject: [PATCH] removed possible synchronization deadlock git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@4511 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/de/anomic/plasma/plasmaSwitchboard.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source/de/anomic/plasma/plasmaSwitchboard.java b/source/de/anomic/plasma/plasmaSwitchboard.java index 82b655690..7b2eadab8 100644 --- a/source/de/anomic/plasma/plasmaSwitchboard.java +++ b/source/de/anomic/plasma/plasmaSwitchboard.java @@ -1607,7 +1607,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser return hasDoneSomething; } - synchronized public boolean htEntryStoreProcess(plasmaHTCache.Entry entry) { + public boolean htEntryStoreProcess(plasmaHTCache.Entry entry) { if (entry == null) return false; @@ -1641,6 +1641,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser doIndexing = false; } + synchronized (sbQueue) { /* ========================================================================= * STORING DATA * @@ -1648,10 +1649,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser * a) the user has configured to use the htcache or * b) the content should be indexed * ========================================================================= */ - if ( - (entry.profile().storeHTCache()) || - (doIndexing && isSupportedContent) - ) { + if ((entry.profile().storeHTCache()) || (doIndexing && isSupportedContent)) { // store response header if (entry.writeResourceInfo()) { this.log.logInfo("WROTE HEADER for " + entry.cacheFile()); @@ -1697,6 +1695,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser plasmaHTCache.deleteURLfromCache(entry.url()); } } + } return true; } @@ -1808,6 +1807,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser checkInterruption(); // getting the next entry from the indexing queue + plasmaSwitchboardQueue.Entry nextentry = null; synchronized (sbQueue) { if (sbQueue.size() == 0) { @@ -1820,8 +1820,7 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser return doneSomething; } - plasmaSwitchboardQueue.Entry nextentry; - + // if we were interrupted we should return now if (Thread.currentThread().isInterrupted()) { log.logFine("deQueue: thread was interrupted"); @@ -1856,9 +1855,9 @@ public final class plasmaSwitchboard extends serverAbstractSwitch implements ser this.indexingTasksInProcess.put(nextentry.urlHash(), nextentry); } - // parse and index the resource - processResourceStack(nextentry); } + // parse and index the resource + processResourceStack(nextentry); return true; } catch (InterruptedException e) { log.logInfo("DEQUEUE: Shutdown detected.");