Author: toad
Date: 2009-03-13 14:10:17 +0000 (Fri, 13 Mar 2009)
New Revision: 26017
Added:
branches/db4o/freenet/src/freenet/client/async/Db4oBugs.java
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
Log:
Workaround a bug in db4o 7.4.84.12673
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2009-03-13 13:33:21 UTC (rev 26016)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2009-03-13 14:10:17 UTC (rev 26017)
@@ -142,7 +142,7 @@
public static void loadKeyListeners(final ObjectContainer container,
ClientContext context) {
ObjectSet<HasKeyListener> results =
- container.query(HasKeyListener.class);
+ Db4oBugs.query(container, HasKeyListener.class);
for(HasKeyListener l : results) {
container.activate(l, 1);
try {
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2009-03-13 13:33:21 UTC (rev 26016)
+++
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2009-03-13 14:10:17 UTC (rev 26017)
@@ -235,8 +235,7 @@
}
private void loadKeyListeners(final ObjectContainer container,
ClientContext context) {
- ObjectSet<HasKeyListener> results =
- container.query(HasKeyListener.class);
+ ObjectSet<HasKeyListener> results = Db4oBugs.query(container,
HasKeyListener.class);
for(HasKeyListener l : results) {
container.activate(l, 1);
try {
Added: branches/db4o/freenet/src/freenet/client/async/Db4oBugs.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/Db4oBugs.java
(rev 0)
+++ branches/db4o/freenet/src/freenet/client/async/Db4oBugs.java
2009-03-13 14:10:17 UTC (rev 26017)
@@ -0,0 +1,20 @@
+package freenet.client.async;
+
+import com.db4o.ObjectContainer;
+import com.db4o.ObjectSet;
+import com.db4o.query.Query;
+
+/** A collection of bug workarounds for everyone's favourite object database!
*/
+public class Db4oBugs {
+
+ public static<T extends Object> ObjectSet<T> query(ObjectContainer
container, Class<T> clazz) {
+ // db4o 7.4.84.12673 throws a RuntimeException: Not supported
+ // when we use this documented API to query all elements of a
class. Isn't that great? :(
+// ObjectSet<HasKeyListener> results =
+// container.query(HasKeyListener.class);
+ Query query = container.query();
+ query.constrain(HasKeyListener.class);
+ return query.execute();
+ }
+
+}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs