Author: toad
Date: 2008-08-21 12:38:08 +0000 (Thu, 21 Aug 2008)
New Revision: 22071
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
Log:
Logging, remove on empty, toString(), fix NPE
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
2008-08-21 12:37:19 UTC (rev 22070)
+++
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerBase.java
2008-08-21 12:38:08 UTC (rev 22071)
@@ -214,11 +214,15 @@
public synchronized void addPendingKeys(KeyListener listener) {
keyListeners.add(listener);
+ System.out.println("Added pending keys to "+this+" : size now
"+keyListeners.size()+" : "+listener);
+ Logger.normal(this, "Added pending keys to "+this+" : size now
"+keyListeners.size()+" : "+listener);
}
public synchronized boolean removePendingKeys(KeyListener listener) {
boolean ret = keyListeners.remove(listener);
listener.onRemove();
+ System.out.println("Removed pending keys from "+this+" : size
now "+keyListeners.size()+" : "+listener);
+ Logger.normal(this, "Removed pending keys from "+this+" : size
now "+keyListeners.size()+" : "+listener);
return ret;
}
@@ -230,6 +234,8 @@
found = true;
i.remove();
listener.onRemove();
+ System.out.println("Removed pending keys from
"+this+" : size now "+keyListeners.size()+" : "+listener);
+ Logger.normal(this, "Removed pending keys from
"+this+" : size now "+keyListeners.size()+" : "+listener);
}
}
return found;
@@ -302,6 +308,12 @@
if(matches != null) {
for(KeyListener listener : matches) {
listener.handleBlock(key, saltedKey, block,
container, context);
+ if(listener.isEmpty()) {
+ synchronized(this) {
+ keyListeners.remove(listener);
+ }
+ listener.onRemove();
+ }
}
}
}
@@ -314,7 +326,7 @@
if(!listener.probablyWantKey(key, saltedKey)) continue;
SendableGet[] reqs = listener.getRequestsForKey(key,
saltedKey, container, context);
if(reqs == null) continue;
- if(list != null) list = new ArrayList<SendableGet>();
+ if(list == null) list = new ArrayList<SendableGet>();
for(int i=0;i<reqs.length;i++) list.add(reqs[i]);
}
}
@@ -327,5 +339,18 @@
public void onStarted() {
keyListeners = new HashSet<KeyListener>();
}
+
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.toString());
+ sb.append(':');
+ if(isInsertScheduler)
+ sb.append("insert:");
+ if(isSSKScheduler)
+ sb.append("SSK");
+ else
+ sb.append("CHK");
+ return sb.toString();
+ }
}