Author: toad
Date: 2007-10-26 19:47:23 +0000 (Fri, 26 Oct 2007)
New Revision: 15598
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
Log:
waitForSend can throw NotConnectedException
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2007-10-26 19:13:41 UTC
(rev 15597)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2007-10-26 19:47:23 UTC
(rev 15598)
@@ -1217,12 +1217,16 @@
private class SyncMessageCallback implements AsyncMessageCallback {
private boolean done = false;
+ private boolean disconnected = false;
- public synchronized void waitForSend(long maxWaitInterval) {
+ public synchronized void waitForSend(long maxWaitInterval)
throws NotConnectedException {
long now = System.currentTimeMillis();
long end = now + maxWaitInterval;
while((now = System.currentTimeMillis()) < end) {
- if(done) return;
+ if(done) {
+ if(disconnected) throw new
NotConnectedException();
+ return;
+ }
int waitTime = (int)(Math.min(end - now,
Integer.MAX_VALUE));
try {
wait(waitTime);
@@ -1246,6 +1250,7 @@
public void disconnected() {
synchronized(this) {
done = true;
+ disconnected = true;
notifyAll();
}
}