Author: toad
Date: 2008-04-15 22:13:55 +0000 (Tue, 15 Apr 2008)
New Revision: 19366

Modified:
   trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
   trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
Log:
RemovePersistentRequest now removes non-persistent requests also.
Fixes #2200.

Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2008-04-15 21:51:02 UTC (rev 19365)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2008-04-15 22:13:55 UTC (rev 19366)
@@ -447,4 +447,17 @@
                        }
                }
        }
+
+       public ClientRequest removeRequestByIdentifier(String identifier, 
boolean kill) {
+               ClientRequest req;
+               synchronized(this) {
+                       req = (ClientRequest) 
requestsByIdentifier.remove(identifier);
+               }
+               if(req != null) {
+                       req.requestWasRemoved();
+                       if(kill)
+                               req.cancel();
+               }
+               return req;
+       }
 }

Modified: trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java     
2008-04-15 21:51:02 UTC (rev 19365)
+++ trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java     
2008-04-15 22:13:55 UTC (rev 19366)
@@ -38,9 +38,14 @@
                FCPClient client = global ? handler.server.globalClient : 
handler.getClient();
         ClientRequest req = client.getRequest(identifier);
         if(req==null){
-            Logger.error(this, "Huh ? the request is null!");
-            return;
+               req = handler.removeRequestByIdentifier(identifier, true);
+               if(req == null) {
+                       Logger.error(this, "Huh ? the request is null!");
+                       return;
+               }
+        } else {
+               client.removeByIdentifier(identifier, true);
         }
-               client.removeByIdentifier(identifier, true);
+        
        }
 }


Reply via email to