Index: src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java =================================================================== --- src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (revision 1415996) +++ src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (working copy) @@ -18,6 +18,9 @@ */ import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -28,6 +31,7 @@ import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.FieldType; +import org.apache.lucene.document.StringField; import org.apache.lucene.document.TextField; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.store.AlreadyClosedException; @@ -38,10 +42,10 @@ import org.apache.lucene.util.Bits; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.LineFileDocs; +import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.ThreadInterruptedException; import org.apache.lucene.util._TestUtil; -import org.apache.lucene.util.LuceneTestCase.Slow; /** * MultiThreaded IndexWriter tests @@ -614,4 +618,21 @@ writerRef.get().close(); d.close(); } + + public void testCommitDataWithThreads() throws Exception { + Directory d = newMockDirectory(); + final RandomIndexWriter w = new RandomIndexWriter(random(), d); + final Map commitData = new HashMap(); + commitData.put("one", "two"); + w.addDocument(new Document()); + w.w.prepareCommit(); + w.w.setCommitData(commitData); + w.commit(); + w.close(); + + List commits = DirectoryReader.listCommits(d); + assertEquals(1, commits.size()); + assertEquals("{one=two}", commits.get(0).getUserData().toString()); + d.close(); + } }