Description
Using NIO2 has a lot of benefits:
- more fine grained exception handling
- clearer semantics about what happens
- additional functionality
- possibility to work with virtual filesystems, etc.
We already banned File.delete and switched to Files.delete, I think we should ban File completely (except for some sugar methods that just forward with .toPath, like FSDirectory.open)
For tests, ideally we go a little further and ban methods like FileSystems.getDefault(). Instead we could exempt LuceneTestCase and ensure all Paths are created via one protected method. This leaves open the possibility to mock up filesystem behavior at a lower level in tests in the future.
Attachments
Attachments
Issue Links
- breaks
-
LUCENE-7188 IllegalStateException in NRTCachingDirectory.listAll
- Closed
- is related to
-
LUCENE-8617 FSDirectory tries to create MMapDirectory on non default file system
- Resolved
-
LUCENE-6542 FSDirectory throws AccessControlException unless you grant write access to the index
- Closed