Author: toad
Date: 2008-07-12 16:39:36 +0000 (Sat, 12 Jul 2008)
New Revision: 21109

Modified:
   
branches/db4o/freenet/src/freenet/support/io/PersistentEncryptedTempBucketFactory.java
Log:
Maybe fix Cooo's OOM

Modified: 
branches/db4o/freenet/src/freenet/support/io/PersistentEncryptedTempBucketFactory.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/support/io/PersistentEncryptedTempBucketFactory.java
      2008-07-12 16:34:35 UTC (rev 21108)
+++ 
branches/db4o/freenet/src/freenet/support/io/PersistentEncryptedTempBucketFactory.java
      2008-07-12 16:39:36 UTC (rev 21109)
@@ -8,6 +8,7 @@
 import com.db4o.ObjectContainer;
 import com.db4o.ObjectSet;
 import com.db4o.query.Predicate;
+import com.db4o.query.Query;

 import freenet.support.api.Bucket;
 import freenet.support.api.BucketFactory;
@@ -26,11 +27,16 @@
        }

        public static PersistentEncryptedTempBucketFactory load(final 
PersistentTempBucketFactory persistentTempBucketFactory, ObjectContainer 
container) {
-               ObjectSet results = container.query(new Predicate() {
-                       public boolean 
match(PersistentEncryptedTempBucketFactory bf) {
-                               return bf.bf == persistentTempBucketFactory;
-                       }
-               });
+               // This causes an OOM in init. WTF?
+//             ObjectSet results = container.query(new Predicate() {
+//                     public boolean 
match(PersistentEncryptedTempBucketFactory bf) {
+//                             return bf.bf == persistentTempBucketFactory;
+//                     }
+//             });
+               Query query = container.query();
+               query.constrain(PersistentEncryptedTempBucketFactory.class);
+               query.descend("bf").constrain(persistentTempBucketFactory);
+               ObjectSet results = query.execute();
                if(results.hasNext()) {
                        return (PersistentEncryptedTempBucketFactory) 
results.next();
                } else {


Reply via email to