Author: toad
Date: 2008-08-28 23:38:39 +0000 (Thu, 28 Aug 2008)
New Revision: 22210

Modified:
   
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
Log:
More NPEs - null client requester is legal if transient


Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-08-28 23:31:59 UTC (rev 22209)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-08-28 23:38:39 UTC (rev 22210)
@@ -93,7 +93,8 @@
        }

        protected void addToRequestsByClientRequest(ClientRequester 
clientRequest, SendableRequest req, ObjectContainer container) {
-               clientRequest.addToRequests(req, container);
+               if(clientRequest != null || persistent()) // Client request 
null is only legal for transient requests
+                       clientRequest.addToRequests(req, container);
        }

        synchronized void addToGrabArray(short priorityClass, int retryCount, 
int rc, RequestClient client, ClientRequester cr, SendableRequest req, 
RandomSource random, ObjectContainer container) {
@@ -144,11 +145,14 @@
        }

        protected SendableRequest[] getSendableRequests(ClientRequester 
request, ObjectContainer container) {
-               return request.getSendableRequests(container);
+               if(request != null || persistent()) // Client request null is 
only legal for transient requests
+                       return request.getSendableRequests(container);
+               else return null;
        }

        void removeFromAllRequestsByClientRequest(SendableRequest req, 
ClientRequester cr, boolean dontComplain, ObjectContainer container) {
-               cr.removeFromRequests(req, container, dontComplain);
+               if(cr != null || persistent()) // Client request null is only 
legal for transient requests
+                       cr.removeFromRequests(req, container, dontComplain);
        }

        public void reregisterAll(ClientRequester request, RandomSource random, 
RequestScheduler lock, ObjectContainer container, ClientContext context) {


Reply via email to