Don't flag a packfile invalid if opening existing file failed
A packfile random file open operation may fail with a FileNotFoundException even if the file exists, possibly for the temporary lack of resources. Instead of managing the FileNotFoundException as any generic IOException it is best to rethrow the exception but prevent the packfile for being flagged as invalid until it is actually opened and read successfully or unsuccessfully. Bug: 514170 Change-Id: Ie37edba2df77052bceafc0b314fd1d487544bf35 Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
11a12ceb0b
commit
363a3657b1
|
@ -50,6 +50,7 @@
|
|||
|
||||
import java.io.EOFException;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.io.RandomAccessFile;
|
||||
|
@ -635,6 +636,12 @@ private void doOpen() throws IOException {
|
|||
// don't invalidate the pack, we are interrupted from another thread
|
||||
openFail(false);
|
||||
throw e;
|
||||
} catch (FileNotFoundException fn) {
|
||||
// don't invalidate the pack if opening an existing file failed
|
||||
// since it may be related to a temporary lack of resources (e.g.
|
||||
// max open files)
|
||||
openFail(!packFile.exists());
|
||||
throw fn;
|
||||
} catch (IOException ioe) {
|
||||
openFail(true);
|
||||
throw ioe;
|
||||
|
|
Loading…
Reference in New Issue