Author: batosai
Date: 2008-08-10 14:36:54 +0000 (Sun, 10 Aug 2008)
New Revision: 21713
Modified:
trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java
trunk/apps/WoT/src/plugins/WoT/IdentityParser.java
trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
Log:
Efforts to keep database consistency.
Modified: trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java
===================================================================
--- trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java 2008-08-10 14:14:57 UTC
(rev 21712)
+++ trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java 2008-08-10 14:36:54 UTC
(rev 21713)
@@ -9,6 +9,7 @@
import java.io.InputStream;
import com.db4o.ObjectContainer;
+import com.db4o.ObjectSet;
import freenet.client.FetchContext;
import freenet.client.FetchException;
@@ -80,14 +81,32 @@
@Override
public void onSuccess(FetchResult result, ClientGetter state) {
+
+ // Find the identity we just fetched
+ Identity identity = null;
+
+ // This is ugly, I could not find a request able to find the
good identity
+ ObjectSet<Identity> search = db.queryByExample(Identity.class);
+ while (search.hasNext()) {
+ Identity id = search.next();
+
if(id.getRequestURI().getRoutingKey().equals(state.getURI().getRoutingKey()))
+ identity = id;
+ }
+ if (identity == null) {
+ System.out.println("Error, identity not found");
+ return;
+ }
try {
- parser.parse(result.asBucket().getInputStream(),
state.getURI());
+ parser.parse(result.asBucket().getInputStream(),
identity);
} catch (Exception e) {
e.printStackTrace();
}
+ db.store(identity);
+ db.commit();
+
}
@Override
Modified: trunk/apps/WoT/src/plugins/WoT/IdentityParser.java
===================================================================
--- trunk/apps/WoT/src/plugins/WoT/IdentityParser.java 2008-08-10 14:14:57 UTC
(rev 21712)
+++ trunk/apps/WoT/src/plugins/WoT/IdentityParser.java 2008-08-10 14:36:54 UTC
(rev 21713)
@@ -41,21 +41,9 @@
saxParser = factory.newSAXParser();
}
- public void parse (InputStream is, FreenetURI fetchedURI) throws
Exception {
-
- // Find the identity we just fetched
- // This is ugly, I could not find a request able to find the
good identity
- ObjectSet<Identity> result = db.queryByExample(Identity.class);
- while (result.hasNext()) {
- Identity id = result.next();
-
if(id.getRequestURI().getRoutingKey().equals(fetchedURI.getRoutingKey()))
- identity = id;
- }
- if (identity == null) {
- System.out.println("Error, identity not found");
- return;
- }
+ public void parse (InputStream is, Identity id) throws Exception {
+ this.identity = id;
identity.setLastChange(new Date());
try {
@@ -65,10 +53,6 @@
err.printStackTrace ();
throw new Exception("Could not parse XML:
"+err.toString());
}
-
- db.store(identity);
- db.commit();
-
}
public class IdentityHandler extends DefaultHandler {
Modified: trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
===================================================================
--- trunk/apps/WoT/src/plugins/WoT/WoTplugin.java 2008-08-10 14:14:57 UTC
(rev 21712)
+++ trunk/apps/WoT/src/plugins/WoT/WoTplugin.java 2008-08-10 14:36:54 UTC
(rev 21713)
@@ -69,6 +69,7 @@
}
public void terminate() {
+ db.commit();
db.close();
}