You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2014/03/22 09:35:43 UTC

[jira] [Created] (LUCENE-5550) Handle NoSuchFileException

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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org