Derby cannot replace a database after encountering corruption
-------------------------------------------------------------
Key: DERBY-3875
URL: https://issues.apache.org/jira/browse/DERBY-3875
Project: Derby
Issue Type: Bug
Components: Store
Affects Versions: 10.4.2.0
Environment: ------------------ Java Information ------------------
Java Version: 1.6.0_06
Java Vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jre1.6.0_06
Java classpath:
C:\Working\Derby-fileclose-fix\bin;C:\Working\Derby-fileclose-fix\lib\derby.jar
OS name: Windows XP
OS architecture: x86
OS version: 5.1
Java user name: Administrator
Java user home: C:\Documents and Settings\Administrator
Java user dir: C:\Working\Derby-fileclose-fix
java.specification.name: Java Platform API Specification
java.specification.version: 1.6
--------- Derby Information --------
JRE - JDBC: Java SE 6 - JDBC 4.0
[C:\Working\Derby-fileclose-fix\lib\derby.jar] 10.4.2.0 - (689064)
------------------------------------------------------
----------------- Locale Information -----------------
------------------------------------------------------
Reporter: Jason McLaurin
When Derby encounters a corrupt data file, it does not close the data file
before throwing an exception to the caller. If the user tries to replace the
database with a backup in response to the corruption, Derby will first attempt
to delete the contents of the corrupt database. But since the corrupt file was
never closed, it cannot be deleted, and Derby fails to start.
The attached java code should reproduce the problem, and the attached patch
should fix it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.