Author: toad
Date: 2008-01-28 14:38:24 +0000 (Mon, 28 Jan 2008)
New Revision: 17355
Modified:
trunk/freenet/src/freenet/node/CHKInsertSender.java
trunk/freenet/src/freenet/node/InsertHandler.java
Log:
Re-revert 17307/17310.
This is not the way to ensure we hear about RECEIVE_FAILED's. It was causing
*more* timeouts because we didn't send the InsertReply until after we had
received all the data.
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2008-01-28 14:06:43 UTC
(rev 17354)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2008-01-28 14:38:24 UTC
(rev 17355)
@@ -15,7 +15,6 @@
import freenet.io.comm.NotConnectedException;
import freenet.io.comm.PeerContext;
import freenet.io.xfer.AbortedException;
-import freenet.io.xfer.BlockReceiver;
import freenet.io.xfer.BlockTransmitter;
import freenet.io.xfer.PartiallyReceivedBlock;
import freenet.keys.CHKBlock;
@@ -173,14 +172,6 @@
this.closestLocation = closestLocation;
this.startTime = System.currentTimeMillis();
this.backgroundTransfers = new Vector();
- try {
- if(prb.allReceived())
- receiveCompleted = true;
- } catch (AbortedException e) {
- receiveFailed = true;
- receiveCompleted = true;
- // Handle the rest of the consequences in realRun().
- }
logMINOR = Logger.shouldLog(Logger.MINOR, this);
}
@@ -206,7 +197,6 @@
final PartiallyReceivedBlock prb;
final boolean fromStore;
private boolean receiveFailed;
- private boolean receiveCompleted;
final double closestLocation;
final long startTime;
private boolean sentRequest;
@@ -616,34 +606,6 @@
private void finish(int code, PeerNode next) {
if(logMINOR) Logger.minor(this, "Finished: "+code+" on "+this, new
Exception("debug"));
- // Don't set the status code until we have received the data.
-
- // FIXME remove timeout and just wait on
TRANSFER_COMPLETION_ACK_TIMEOUT below
- long receiveTimeout = System.currentTimeMillis() +
(BlockReceiver.MAX_CONSECUTIVE_MISSING_PACKET_REPORTS *
BlockReceiver.RECEIPT_TIMEOUT * 3);
- if(receiveCompleted) {
- synchronized(backgroundTransfers) {
- while(true) {
- if(receiveCompleted) break;
- try {
- //FIXME delete below and reinstate:
backgroundTransfers.wait(TRANSFER_COMPLETION_ACK_TIMEOUT);
- int delay = (int) (receiveTimeout -
System.currentTimeMillis());
- if(delay > 0)
backgroundTransfers.wait(delay);
- else if(!receiveCompleted) {
- Logger.error(this, "Timeout
waiting for transfer completion on "+this);
- code = RECEIVE_FAILED;
- receiveFailed = true;
- receiveCompleted = true;
- break;
- }
- } catch (InterruptedException e) {
- // Ignore
- }
- }
- }
- if(receiveFailed)
- code = RECEIVE_FAILED;
- }
-
synchronized(this) {
if((code == ROUTE_NOT_FOUND) && !sentRequest)
code = ROUTE_REALLY_NOT_FOUND;
@@ -697,7 +659,6 @@
public void receiveFailed() {
synchronized(backgroundTransfers) {
receiveFailed = true;
- receiveCompleted = true;
backgroundTransfers.notifyAll();
}
// Set status immediately.
@@ -713,16 +674,6 @@
}
/**
- * Called by InsertHandler to notify that the receive has finished
successfully.
- */
- public void receiveCompleted() {
- synchronized(backgroundTransfers) {
- receiveCompleted = true;
- backgroundTransfers.notifyAll();
- }
- }
-
- /**
* @return The current status as a string
*/
public synchronized String getStatusString() {
Modified: trunk/freenet/src/freenet/node/InsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertHandler.java 2008-01-28 14:06:43 UTC
(rev 17354)
+++ trunk/freenet/src/freenet/node/InsertHandler.java 2008-01-28 14:38:24 UTC
(rev 17355)
@@ -420,8 +420,6 @@
if(logMINOR) Logger.minor(this, "Receiving data for
"+InsertHandler.this);
try {
br.receive();
- if(sender != null)
- sender.receiveCompleted();
if(logMINOR) Logger.minor(this, "Received data for
"+InsertHandler.this);
synchronized(InsertHandler.this) {
receiveCompleted = true;