[
https://issues.apache.org/jira/browse/LUCENE-2598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Muir updated LUCENE-2598:
--------------------------------
Attachment: LUCENE-2598.patch
heres the patch improved: the i/o wrappers remove themselves from the map, and
the exception message is nicer. so if you forget to close files, you get:
{noformat}
junit-sequential:
[junit] Testsuite: org.apache.lucene.TestDemo
[junit] Testcase: testDemo(org.apache.lucene.TestDemo): Caused an ERROR
[junit] MockRAMDirectory: cannot close: there are still open files:
{_0.cfs=1}
[junit] java.lang.RuntimeException: MockRAMDirectory: cannot close: there
are still open files: {_0.cfs=1}
[junit] at
org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:342)
[junit] at org.apache.lucene.TestDemo.testDemo(TestDemo.java:81)
[junit] at
org.apache.lucene.util.LuceneTestCase.runBare(LuceneTestCase.java:380)
[junit] at
org.apache.lucene.util.LuceneTestCase.run(LuceneTestCase.java:372)
[junit] Caused by: java.lang.RuntimeException: unclosed IndexInput
[junit] at
org.apache.lucene.store.MockDirectoryWrapper.openInput(MockDirectoryWrapper.java:299)
[junit] at
org.apache.lucene.store.Directory.openInput(Directory.java:138)
[junit] at
org.apache.lucene.index.CompoundFileReader.<init>(CompoundFileReader.java:67)
[junit] at
org.apache.lucene.index.SegmentReader$CoreReaders.<init>(SegmentReader.java:126)
[junit] at
org.apache.lucene.index.SegmentReader.get(SegmentReader.java:536)
[junit] at
org.apache.lucene.index.SegmentReader.get(SegmentReader.java:509)
[junit] at
org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:129)
[junit] at
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:96)
[junit] at
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:630)
[junit] at
org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:91)
[junit] at
org.apache.lucene.index.IndexReader.open(IndexReader.java:415)
[junit] at
org.apache.lucene.index.IndexReader.open(IndexReader.java:234)
[junit] at
org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:78)
[junit] at org.apache.lucene.TestDemo.testDemo(TestDemo.java:67)
{noformat}
> allow tests to use different Directory impls
> --------------------------------------------
>
> Key: LUCENE-2598
> URL: https://issues.apache.org/jira/browse/LUCENE-2598
> Project: Lucene - Java
> Issue Type: Test
> Components: Build
> Affects Versions: 3.1, 4.0
> Reporter: Robert Muir
> Assignee: Robert Muir
> Fix For: 3.1, 4.0
>
> Attachments: LUCENE-2598.patch, LUCENE-2598.patch, LUCENE-2598.patch,
> LUCENE-2598.patch, LUCENE-2598.patch, LUCENE-2598.patch, LUCENE-2598.patch
>
>
> Now that all tests use MockRAMDirectory instead of RAMDirectory, they are all
> picky like windows and force our tests to
> close readers etc before closing the directory.
> I think we should do the following:
> # change new MockRAMDIrectory() in tests to .newDirectory(random)
> # LuceneTestCase[J4] tracks if all dirs are closed at tearDown and also
> cleans up temp dirs like solr.
> # factor out the Mockish stuff from MockRAMDirectory into MockDirectoryWrapper
> # allow a -Dtests.directoryImpl or simpler to specify the default Directory
> to use for tests: default being "random"
> i think theres a chance we might find some bugs that havent yet surfaced
> because they are easier to trigger with FSDir
> Furthermore, this would be beneficial to Directory-implementors as they could
> run the entire testsuite against their Directory impl, just like
> codec-implementors can do now.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]