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

Modified Files:
        Lucene.java Indexer.java 
Log Message:
moved 'clear' functionality to seperate method, and also made it more 
aggressive, to remove also hidden files (e.g. from nfs)


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


Index: Lucene.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Lucene.java,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -b -r1.119 -r1.120
--- Lucene.java 29 Jul 2008 09:01:20 -0000      1.119
+++ Lucene.java 20 Aug 2008 10:53:20 -0000      1.120
@@ -48,7 +48,7 @@
  *
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: Lucene.java,v 1.119 2008/07/29 09:01:20 michiel Exp $
+ * @version $Id: Lucene.java,v 1.120 2008/08/20 10:53:20 michiel Exp $
  **/
 public class Lucene extends ReloadableModule implements NodeEventListener, 
RelationEventListener, IdEventListener, AssignmentEvents.Listener {
 
@@ -238,22 +238,7 @@
                     String index = event.getIndex();
                     Indexer indexer = indexerMap.get(index);
                     boolean copy = event.getCopy();
-                    try {
-                        Directory dir = copy ? 
indexer.getDirectoryForFullIndex(): indexer.getDirectory();
-                        for (String file : dir.list()) {
-                            if (file != null) {
-                                try {
-                                    log.service("Deleting " + file);
-                                    dir.deleteFile(file);
-                                } catch (Exception e) {
-                                    log.warn(e);
-                                }
-                            }
-                        }
-                        if (! copy)  
EventManager.getInstance().propagateEvent(new NewSearcher.Event(index));
-                    } catch (java.io.IOException ioe) {
-                        throw new RuntimeException(ioe);
-                    }
+                    indexer.clear(copy);
                 } break;
             }
         } else {


Index: Indexer.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/Indexer.java,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- Indexer.java        21 Jul 2008 14:25:54 -0000      1.59
+++ Indexer.java        20 Aug 2008 10:53:20 -0000      1.60
@@ -34,7 +34,7 @@
  *
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: Indexer.java,v 1.59 2008/07/21 14:25:54 michiel Exp $
+ * @version $Id: Indexer.java,v 1.60 2008/08/20 10:53:20 michiel Exp $
  **/
 public class Indexer {
 
@@ -418,6 +418,7 @@
         IndexWriter writer = null;
         Directory fullIndex = null;
         try {
+            clear(true);
             fullIndex = getDirectoryForFullIndex();
             writer = new IndexWriter(fullIndex, analyzer, true);
             long startTime = System.currentTimeMillis();
@@ -439,6 +440,8 @@
             }
             writer.optimize();
             if (errorCountBefore == errorCount) {
+                // first clean up, to remove possible mess
+                clear(false);
                 Directory.copy(fullIndex, getDirectory(), true);
                 Date lastFullIndex = setLastFullIndex(startTime);
                 log.info("Full index finished at " + lastFullIndex + ". Copied 
" + fullIndex + " to " + getDirectory() + " Total nr documents in index '" + 
getName() + "': " + writer.docCount());
@@ -536,6 +539,36 @@
         }
     }
 
+    void clear(boolean copy) {
+        try {
+            Directory dir = copy ? getDirectoryForFullIndex(): getDirectory();
+            for (String file : dir.list()) {
+                if (file != null) {
+                    try {
+                        log.service("Deleting " + file);
+                        dir.deleteFile(file);
+                    } catch (Exception e) {
+                        log.warn(e);
+                    }
+                }
+            }
+            if (dir instanceof FSDirectory) {
+                File fsdir = ((FSDirectory) dir).getFile();
+                for (File file : fsdir.listFiles()) {
+                    try {
+                        log.service("Deleting " + file);
+                        file.delete();
+                    } catch (Exception e) {
+                        log.warn(e);
+                    }
+                }
+            }
+            if (! copy)  EventManager.getInstance().propagateEvent(new 
NewSearcher.Event(index));
+        } catch (java.io.IOException ioe) {
+            throw new RuntimeException(ioe);
+        }
+    }
+
     public String toString() {
         return getName() + queries;
     }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to