Author: toad Date: 2007-04-14 18:25:20 +0000 (Sat, 14 Apr 2007) New Revision: 12706
Modified:
trunk/freenet/src/freenet/node/CHKInsertSender.java
Log:
Fix infinite loop
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2007-04-14 17:59:34 UTC
(rev 12705)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2007-04-14 18:25:20 UTC
(rev 12706)
@@ -695,6 +695,24 @@
}
if(mf == null) {
+
+ if(!waitingForAny) {
+ // All are disconnected
+ allTransfersCompleted = true;
+ return;
+ }
+
+ if(!anyNotCompleted) {
+ // All have completed transferring, AND
all have received completion notices!
+ // All done!
+ if(logMINOR) Logger.minor(this,
"Completed, status="+getStatusString()+", nothing left to wait for for "+uid+"
.");
+ synchronized(CHKInsertSender.this) {
+ allTransfersCompleted = true;
+
CHKInsertSender.this.notifyAll();
+ }
+ return;
+ }
+
if(status != NOT_FINISHED) {
if(nodesWaitingForCompletion.size() !=
waiters.length) {
// Added another one
@@ -712,23 +730,6 @@
}
} else {
- if(!waitingForAny) {
- // All are disconnected
- allTransfersCompleted = true;
- return;
- }
-
- if(!anyNotCompleted) {
- // All have completed
transferring, AND all have received completion notices!
- // All done!
- if(logMINOR) Logger.minor(this,
"Completed, status="+getStatusString()+", nothing left to wait for for "+uid+"
.");
-
synchronized(CHKInsertSender.this) {
- allTransfersCompleted =
true;
-
CHKInsertSender.this.notifyAll();
- }
- return;
- }
-
// Still waiting for request
completion, so more may be added
synchronized(nodesWaitingForCompletion)
{
try {
