Mercurial Hosting > luan
changeset 527:ef0336efe33c
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 27 May 2015 03:29:04 -0600 |
parents | f24d824e9fe5 |
children | a24abf172f8f |
files | core/src/luan/LuanState.java lucene/src/luan/modules/lucene/LuceneIndex.java |
diffstat | 2 files changed, 13 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/core/src/luan/LuanState.java Wed May 27 03:20:38 2015 -0600 +++ b/core/src/luan/LuanState.java Wed May 27 03:29:04 2015 -0600 @@ -1,5 +1,7 @@ package luan; +import java.io.Closeable; +import java.io.IOException; import java.lang.ref.Reference; import java.lang.ref.WeakReference; import java.util.List; @@ -15,7 +17,7 @@ final List<StackTraceElement> stackTrace = new ArrayList<StackTraceElement>(); private Map registry; - private final List<Reference<Runnable>> onClose = new ArrayList<Reference<Runnable>>(); + private final List<Reference<Closeable>> onClose = new ArrayList<Reference<Closeable>>(); protected LuanState() { registry = new HashMap(); @@ -35,15 +37,15 @@ return registry; } - public void onClose(Runnable fn) { - onClose.add(new WeakReference<Runnable>(fn)); + public void onClose(Closeable c) { + onClose.add(new WeakReference<Closeable>(c)); } - public void close() { - for( Reference<Runnable> ref : onClose ) { - Runnable r = ref.get(); - if( r != null ) - r.run(); + public void close() throws IOException { + for( Reference<Closeable> ref : onClose ) { + Closeable c = ref.get(); + if( c != null ) + c.close(); } onClose.clear(); }
--- a/lucene/src/luan/modules/lucene/LuceneIndex.java Wed May 27 03:20:38 2015 -0600 +++ b/lucene/src/luan/modules/lucene/LuceneIndex.java Wed May 27 03:29:04 2015 -0600 @@ -1,5 +1,6 @@ package luan.modules.lucene; +import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; import java.io.FileInputStream; @@ -35,7 +36,7 @@ import org.slf4j.LoggerFactory; -public final class LuceneIndex { +public final class LuceneIndex implements Closeable { private static final Logger logger = LoggerFactory.getLogger(LuceneIndex.class); private static final String FLD_NEXT_ID = "nextId"; @@ -48,7 +49,6 @@ private LuceneSearcher searcher; public final FieldTable fields = new FieldTable(); private boolean isClosed = false; - private final Runnable closer; public LuceneIndex(LuanState luan,String indexDirStr) throws LuanException, IOException { File indexDir = new File(indexDirStr); @@ -62,14 +62,7 @@ writer = new IndexWriter(dir,conf); writer.commit(); // commit index creation reader = DirectoryReader.open(dir); - closer = new Runnable(){public void run(){ - try { - close(); - } catch(IOException e) { - logger.error("",e); - } - }}; - luan.onClose(closer); + luan.onClose(this); searcher = new LuceneSearcher(this,reader); initId(luan); }