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