Michael McCandless created LUCENE-5550:
------------------------------------------
Summary: Handle NoSuchFileException
Key: LUCENE-5550
URL: https://issues.apache.org/jira/browse/LUCENE-5550
Project: Lucene - Core
Issue Type: Bug
Reporter: Michael McCandless
Priority: Blocker
Fix For: 4.8
With Java 7 we now must handle either NoSuchFileException (thrown by nio) or
FileNotFoundException (thrown by pre-nio io apis) coming out of some Directory
methods.
We did this on trunk already but we need to do it for 4.x as well... including
fixing MockDirWrapper to randomly pick one to throw.
Uwe said:
I did a grep for NoSuchFileException on trunk and 4.x.
In trunk we have many more of this Excepotion, especially also randomization in
MockDirectory to throw this one or FNFE. We should backport those fixes:
Branch_4x:
./lucene/core/src/java/org/apache/lucene/store/Directory.java: * (not {@code
java.nio.file.NoSuchFileException} of Java 7).
./lucene/core/src/java/org/apache/lucene/store/Directory.java: * (not {@code
java.nio.file.NoSuchFileException} of Java 7).
./lucene/core/src/java/org/apache/lucene/store/Directory.java: * (not {@code
java.nio.file.NoSuchFileException} of Java 7).
./lucene/replicator/src/test/org/apache/lucene/replicator/LocalReplicatorTest.java:import
java.nio.file.NoSuchFileException;
./lucene/replicator/src/test/org/apache/lucene/replicator/LocalReplicatorTest.java:
} catch (FileNotFoundException | NoSuchFileException e) {
Trunk:
./lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java: }
catch (FileNotFoundException | NoSuchFileException fnfe) {
./lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java:
} catch (FileNotFoundException | NoSuchFileException e) {
./lucene/core/src/java/org/apache/lucene/store/Directory.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/java/org/apache/lucene/store/Directory.java: * <li>Throws
{@link FileNotFoundException} or {@link NoSuchFileException}
./lucene/core/src/java/org/apache/lucene/store/Directory.java: * <p>Throws
{@link FileNotFoundException} or {@link NoSuchFileException}
./lucene/core/src/java/org/apache/lucene/store/Directory.java: * <p>Throws
{@link FileNotFoundException} or {@link NoSuchFileException}
./lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java: } else
if (t instanceof FileNotFoundException || t instanceof NoSuchFileException) {
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java:
fail("opening DirectoryReader on empty directory failed to produce
FileNotFoundException/NoSuchFileException");
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java: }
catch (FileNotFoundException | NoSuchFileException e) {
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java:
fail("expected FileNotFoundException/NoSuchFileException");
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java: }
catch (FileNotFoundException | NoSuchFileException e) {
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java:
fail("expected FileNotFoundException/NoSuchFileException");
./lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java: }
catch (FileNotFoundException | NoSuchFileException e) {
./lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java:
} catch (FileNotFoundException | NoSuchFileException ex) {
./lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java:
} catch (FileNotFoundException | NoSuchFileException e) {
./lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java:
} catch (FileNotFoundException | NoSuchFileException e1) {
./lucene/core/src/test/org/apache/lucene/store/TestDirectory.java:import
java.nio.file.NoSuchFileException;
./lucene/core/src/test/org/apache/lucene/store/TestDirectory.java:
} catch (FileNotFoundException | NoSuchFileException e) {
./lucene/replicator/src/test/org/apache/lucene/replicator/LocalReplicatorTest.java:import
java.nio.file.NoSuchFileException;
./lucene/replicator/src/test/org/apache/lucene/replicator/LocalReplicatorTest.java:
} catch (FileNotFoundException | NoSuchFileException e) {
./lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java:import
java.nio.file.NoSuchFileException;
./lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java:
throw randomState.nextBoolean() ? new FileNotFoundException("a random
IOException (" + name + ")") : new NoSuchFileException("a random IOException ("
+ name + ")");
./lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java:
throw randomState.nextBoolean() ? new FileNotFoundException(name + " in
dir=" + in) : new NoSuchFileException(name + " in dir=" + in);
./lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java:
throw randomState.nextBoolean() ? new FileNotFoundException(name) : new
NoSuchFileException(name);
This is important to fix before we release 4.8 for Java 7
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]