Author: toad
Date: 2008-07-12 16:03:02 +0000 (Sat, 12 Jul 2008)
New Revision: 21106
Modified:
branches/db4o/freenet/src/freenet/node/fcp/FCPPersistentRoot.java
Log:
Maybe fix OOMs
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPPersistentRoot.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPPersistentRoot.java
2008-07-12 13:55:31 UTC (rev 21105)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPPersistentRoot.java
2008-07-12 16:03:02 UTC (rev 21106)
@@ -55,12 +55,17 @@
*/
Query query = container.query();
query.constrain(FCPClient.class);
+ // Don't constrain by root because that set is huge.
+ // I think that was the cause of the OOMs here...
query.descend("name").constrain(name);
- query.descend("root").constrain(this);
ObjectSet set = query.execute();
- if(set.hasNext()) {
+ while(set.hasNext()) {
FCPClient client = (FCPClient) set.next();
container.activate(client, 1);
+ if(client.root != this) {
+ container.deactivate(client, 1);
+ continue;
+ }
client.setConnection(handler);
if(!(name.equals(client.name)))
Logger.error(this, "Returning "+client+" for
"+name);