Author: toad
Date: 2008-01-28 13:13:30 +0000 (Mon, 28 Jan 2008)
New Revision: 17347

Modified:
   trunk/freenet/src/freenet/io/comm/MessageFilter.java
Log:
A timeout (or no timeout) must be set explicitly for EVERY filter! 

Modified: trunk/freenet/src/freenet/io/comm/MessageFilter.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/MessageFilter.java        2008-01-28 
13:10:53 UTC (rev 17346)
+++ trunk/freenet/src/freenet/io/comm/MessageFilter.java        2008-01-28 
13:13:30 UTC (rev 17347)
@@ -48,9 +48,9 @@
     private Message _message;
     private long _oldBootID;
     private AsyncMessageFilterCallback _callback;
+    private boolean _setTimeout = false;

     private MessageFilter() {
-       setNoTimeout();
         _timeoutFromWait = true;
     }

@@ -60,6 +60,8 @@

     void onStartWaiting() {
        synchronized(this) {
+               if(!_setTimeout)
+                       Logger.error(this, "No timeout set on filter "+this, 
new Exception("error"));
                if(_initialTimeout > 0 && _timeoutFromWait)
                        _timeout = System.currentTimeMillis() + _initialTimeout;
        }
@@ -86,12 +88,14 @@
      * @return This message filter
      */
        public MessageFilter setTimeout(int timeout) {
+               _setTimeout = true;
                _initialTimeout = timeout;
                _timeout = System.currentTimeMillis() + timeout;
                return this;
        }

        public MessageFilter setNoTimeout() {
+               _setTimeout = true;
                _timeout = Long.MAX_VALUE;
                return this;
        }


Reply via email to