Author: toad
Date: 2008-10-31 18:08:43 +0000 (Fri, 31 Oct 2008)
New Revision: 23259

Modified:
   
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
Log:
Fix NPE, try to find the real cause.


Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-10-31 18:08:07 UTC (rev 23258)
+++ 
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java  
    2008-10-31 18:08:43 UTC (rev 23259)
@@ -204,6 +204,7 @@
        }

        public synchronized void addPendingKeys(KeyListener listener) {
+               if(listener == null) throw new NullPointerException();
                keyListeners.add(listener);
                Logger.normal(this, "Added pending keys to "+this+" : size now 
"+keyListeners.size()+" : "+listener);
        }
@@ -219,6 +220,11 @@
                boolean found = false;
                for(Iterator<KeyListener> i = 
keyListeners.iterator();i.hasNext();) {
                        KeyListener listener = i.next();
+                       if(listener == null) {
+                               i.remove();
+                               Logger.error(this, "Null KeyListener in 
removePendingKeys()");
+                               continue;
+                       }
                        if(listener.getHasKeyListener() == hasListener) {
                                found = true;
                                i.remove();


Reply via email to