Author: j16sdiz
Date: 2008-12-17 05:37:31 +0000 (Wed, 17 Dec 2008)
New Revision: 24405

Modified:
   trunk/plugins/XMLSpider/XMLSpider.java
Log:
synchronization and delete old TermPosition

Modified: trunk/plugins/XMLSpider/XMLSpider.java
===================================================================
--- trunk/plugins/XMLSpider/XMLSpider.java      2008-12-17 05:37:22 UTC (rev 
24404)
+++ trunk/plugins/XMLSpider/XMLSpider.java      2008-12-17 05:37:31 UTC (rev 
24405)
@@ -392,6 +392,16 @@
                page.status = Status.SUCCEEDED; // Content filter may throw, 
but we mark it as success anyway
 
                try {
+                       synchronized (page) {
+                               // Page may be refetched if added manually
+                               // Delete existing TermPosition
+                               Query query = db.query();
+                               query.constrain(TermPosition.class);
+                               query.descend("pageId").constrain(page.id);
+                               ObjectSet<TermPosition> set = query.execute();
+                               for (TermPosition tp : set)
+                                       db.delete(tp);
+                               
                        ClientMetadata cm = result.getMetadata();
                        Bucket data = result.asBucket();
                        String mimeType = cm.getMIMEType();                     
@@ -416,6 +426,7 @@
                        } finally {
                                data.free();
                        }
+                       }
                } finally {
                        synchronized (this) {
                                runningFetch.remove(page);

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to