[freenet-cvs] r18349 - trunk/freenet/src/freenet/node

toad at freenetproject.org toad at freenetproject.org
Tue Mar 4 17:04:02 UTC 2008


Author: toad
Date: 2008-03-04 17:04:02 +0000 (Tue, 04 Mar 2008)
New Revision: 18349

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/NodeClientCore.java
   trunk/freenet/src/freenet/node/RequestHandler.java
Log:
Revert early addListener(), it causes NPEs when we get called too early.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java	2008-03-04 16:53:22 UTC (rev 18348)
+++ trunk/freenet/src/freenet/node/Node.java	2008-03-04 17:04:02 UTC (rev 18349)
@@ -1893,7 +1893,7 @@
 	 * a RequestSender, unless the HTL is 0, in which case NULL.
 	 * RequestSender.
 	 */
-	public Object makeRequestSender(Key key, short htl, long uid, PeerNode source, boolean localOnly, boolean cache, boolean ignoreStore, boolean offersOnly, RequestSender.Listener listener) {
+	public Object makeRequestSender(Key key, short htl, long uid, PeerNode source, boolean localOnly, boolean cache, boolean ignoreStore, boolean offersOnly) {
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		if(logMINOR) Logger.minor(this, "makeRequestSender("+key+ ',' +htl+ ',' +uid+ ',' +source+") on "+getDarknetPortNumber());
 		// In store?
@@ -1933,7 +1933,6 @@
 		}
 		if(sender != null) {
 			if(logMINOR) Logger.minor(this, "Data already being transferred: "+sender);
-			if(listener != null) sender.addListener(listener);
 			return sender;
 		}
 
@@ -1956,7 +1955,6 @@
 			sender = new RequestSender(key, null, htl, uid, this, source, offersOnly);
 			// RequestSender adds itself to requestSenders
 		}
-		if(listener != null) sender.addListener(listener);
 		sender.start();
 		if(logMINOR) Logger.minor(this, "Created new sender: "+sender);
 		return sender;

Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java	2008-03-04 16:53:22 UTC (rev 18348)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java	2008-03-04 17:04:02 UTC (rev 18349)
@@ -470,7 +470,7 @@
 	 */
 	void asyncGet(Key key, boolean cache, boolean offersOnly, long uid, RequestSender.Listener listener) {
 		try {
-			Object o = node.makeRequestSender(key, node.maxHTL(), uid, null, false, cache, false, offersOnly, listener);
+			Object o = node.makeRequestSender(key, node.maxHTL(), uid, null, false, cache, false, offersOnly);
 			if(o instanceof CHKBlock) {
 				node.unlockUID(uid, false, false, true, false);
 				return; // Already have it.
@@ -509,7 +509,7 @@
 			throw new LowLevelGetException(LowLevelGetException.INTERNAL_ERROR);
 		}
 		try {
-		Object o = node.makeRequestSender(key.getNodeCHK(), node.maxHTL(), uid, null, localOnly, cache, ignoreStore, false, null);
+		Object o = node.makeRequestSender(key.getNodeCHK(), node.maxHTL(), uid, null, localOnly, cache, ignoreStore, false);
 		if(o instanceof CHKBlock) {
 			try {
 				return new ClientCHKBlock((CHKBlock)o, key);
@@ -624,7 +624,7 @@
 			throw new LowLevelGetException(LowLevelGetException.INTERNAL_ERROR);
 		}
 		try {
-		Object o = node.makeRequestSender(key.getNodeKey(), node.maxHTL(), uid, null, localOnly, cache, ignoreStore, false, null);
+		Object o = node.makeRequestSender(key.getNodeKey(), node.maxHTL(), uid, null, localOnly, cache, ignoreStore, false);
 		if(o instanceof SSKBlock) {
 			try {
 				SSKBlock block = (SSKBlock)o;

Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java	2008-03-04 16:53:22 UTC (rev 18348)
+++ trunk/freenet/src/freenet/node/RequestHandler.java	2008-03-04 17:04:02 UTC (rev 18349)
@@ -132,12 +132,13 @@
         Message accepted = DMT.createFNPAccepted(uid);
         source.sendAsync(accepted, null, 0, this);
         
-        Object o = node.makeRequestSender(key, htl, uid, source, false, true, false, false, this);
+        Object o = node.makeRequestSender(key, htl, uid, source, false, true, false, false);
         if(o instanceof KeyBlock) {
         	returnLocalData((KeyBlock)o);
             return;
         }
         rs = (RequestSender) o;
+        rs.addListener(this);
         
         if(rs == null) { // ran out of htl?
             Message dnf = DMT.createFNPDataNotFound(uid);




More information about the cvs mailing list