Update of /var/cvs/contributions/lucene/src/org/mmbase/module/lucene
In directory james.mmbase.org:/tmp/cvs-serv22670

Modified Files:
        Indexer.java Lucene.java 
Log Message:
details. Made interrupting of jobs work better. Show which index is currelntly 
updated.


See also: 
http://cvs.mmbase.org/viewcvs/contributions/lucene/src/org/mmbase/module/lucene


Index: Indexer.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Indexer.java,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- Indexer.java        29 Sep 2008 11:15:22 -0000      1.62
+++ Indexer.java        12 Feb 2009 12:34:11 -0000      1.63
@@ -34,7 +34,7 @@
  *
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: Indexer.java,v 1.62 2008/09/29 11:15:22 pierre Exp $
+ * @version $Id: Indexer.java,v 1.63 2009/02/12 12:34:11 michiel Exp $
  **/
 public class Indexer {
 
@@ -246,6 +246,7 @@
     public int deleteIndex(String number, Class<? extends IndexDefinition> 
klass) {
         int deleted = 0;
         int updated = 0;
+        OUTER:
         for (IndexDefinition indexDefinition : queries) {
             if (klass.isAssignableFrom(indexDefinition.getClass())) {
                 IndexReader reader = null;
@@ -266,6 +267,10 @@
                         } else {
                             mains.add(main);
                         }
+                        if (Thread.currentThread().isInterrupted()) {
+                            log.service("Interrupted");
+                            break OUTER;
+                        }
                     }
                 } catch (Exception e) {
                     addError(e.getMessage());
@@ -283,6 +288,9 @@
                 }
 
             }
+            if (Thread.currentThread().isInterrupted()) {
+                log.service("Interrupted");
+            }
         }
         return deleted;
 
@@ -300,6 +308,10 @@
                 }
                 updated += index(j, writer, indexDefinition.getId());
                 j.close();
+                if (Thread.currentThread().isInterrupted()) {
+                    log.service("Interrupted");
+                    break;
+                }
             }
         } catch (FileNotFoundException fnfe) {
             log.debug(fnfe);
@@ -352,6 +364,10 @@
                         } else {
                             log.debug("Retained #" + i + " from " + indexId + 
" (!= " + indexDefinition.getId());
                         }
+                        if (Thread.currentThread().isInterrupted()) {
+                            log.service("Interrupted");
+                            break;
+                        }
                     }
                     docs.close();
                 } catch (FileNotFoundException fnfe) {
@@ -374,6 +390,10 @@
                     }
                 }
             }
+            if (Thread.currentThread().isInterrupted()) {
+                log.service("Interrupted");
+                break;
+            }
         }
         if (updated > 0) {
             log.service(getName() + ": Updated " + updated + " documents for 
'" + number + "'");
@@ -403,6 +423,10 @@
                     updated += update(indexDefinition, mains);
                 }
             }
+            if (Thread.currentThread().isInterrupted()) {
+                log.service("Interrupted");
+                break;
+            }
         }
         if (updated > 0) {
             log.service(getName() + ": " + updated + " new documents for '" + 
number + "'");


Index: Lucene.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Lucene.java,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -b -r1.127 -r1.128
--- Lucene.java 12 Feb 2009 12:01:29 -0000      1.127
+++ Lucene.java 12 Feb 2009 12:34:11 -0000      1.128
@@ -48,7 +48,7 @@
  *
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: Lucene.java,v 1.127 2009/02/12 12:01:29 michiel Exp $
+ * @version $Id: Lucene.java,v 1.128 2009/02/12 12:34:11 michiel Exp $
  **/
 public class Lucene extends ReloadableModule implements NodeEventListener, 
RelationEventListener, IdEventListener, AssignmentEvents.Listener {
 
@@ -1280,21 +1280,24 @@
         void newIndex(final String number, final Class klass) {
             assert klass != null;
             assign(new Assignment() {
+                    Indexer current;
                     public void run() {
                         log.service("New index for " + number);
                         status = BUSY_INDEX;
                         for (Indexer indexer : indexerMap.values()) {
+                            current = indexer;
                             int updated = indexer.newIndex(number, klass);
                             if (updated > 0) {
                                 log.service(indexer.getName() + ": " + updated 
+ " new index entr" + (updated > 1 ? "ies" : "y"));
                             }
                         }
+                        current = null;
                     }
                     public String idString() {
                         return klass.getName() + number;
                     }
                     public String toString() {
-                        return "NEW for " + number + " " + klass;
+                        return "NEW for " + number + " " + klass + (current != 
null ? " (" + current.getName() + ")" : "");
                     }
 
                 });
@@ -1303,21 +1306,24 @@
         void updateIndex(final String number, final Class klass) {
             assert klass != null;
             assign(new Assignment() {
+                    Indexer current;
                     public void run() {
                         log.debug("Update index for " + number);
                         status = BUSY_INDEX;
                         for (Indexer indexer : indexerMap.values()) {
+                            current = indexer;
                             int updated = indexer.updateIndex(number, klass);
                             if (updated > 0) {
                                 log.service(indexer.getName() + ": Updated " + 
updated + " index entr" + (updated > 1 ? "ies" : "y"));
                             }
+                            current = null;
                         }
                     }
                     public String idString() {
                         return klass.getName() + number;
                     }
                     public String toString() {
-                        return "UPDATE for " + number + " " + klass;
+                        return "UPDATE for " + number + " " + klass + (current 
!= null ? " (" + current.getName() + ")" : "");
                     }
 
                 });
@@ -1326,18 +1332,21 @@
         void deleteIndex(final String number, final Class klass) {
             assert klass != null;
             assign(new Assignment() {
+                    Indexer current;
                     public void run() {
                         log.debug("delete index for " + number); // already 
logged in indexer.deleteIndex
                         status = BUSY_INDEX;
                         for (Indexer indexer : indexerMap.values()) {
+                            current = indexer;
                             indexer.deleteIndex(number, klass);
                         }
+                        current = null;
                     }
                     public String idString() {
                         return klass.getName() + number;
                     }
                     public String toString() {
-                        return "DELETE for " + number + " " + klass;
+                        return "DELETE for " + number + " " + klass + (current 
!= null ? " (" + current.getName() + ")" : "");
                     }
                 });
         }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to