Skip to content

Commit de5d8b2

Browse files
author
hideki
committed
Applied DatabaseUpgrade.backOut() in case of failing to rename temporary database. Plus minor formatting.
1 parent 227b6aa commit de5d8b2

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

src/main/java/com/couchbase/lite/Manager.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,8 @@ private boolean upgradeDatabase(String name, String dbPath, boolean close) {
821821
// Create and open new CBLDatabase with temporary name:
822822
Database tmpDB = getDatabase(tempName, false);
823823
if (tmpDB == null) {
824-
Log.w(Log.TAG_DATABASE, "Upgrade failed: Creating new db failed: %s", tempName);
824+
Log.w(Log.TAG_DATABASE,
825+
"Upgrade failed: Creating new db failed: %s", tempName);
825826
return false;
826827
}
827828

@@ -846,7 +847,8 @@ private boolean upgradeDatabase(String name, String dbPath, boolean close) {
846847

847848
if (tmpDB.exists()) {
848849
// the temporary db should not exist. Just double check
849-
Log.w(Log.TAG_DATABASE, "Upgrade failed: Failed to delete already existing db: %s", tempName);
850+
Log.w(Log.TAG_DATABASE,
851+
"Upgrade failed: Failed to delete already existing db: %s", tempName);
850852
return false;
851853
}
852854

@@ -864,14 +866,19 @@ private boolean upgradeDatabase(String name, String dbPath, boolean close) {
864866
File tmpPath = new File(pathForDatabaseNamed(tempName));
865867
File newPath = new File(pathForDatabaseNamed(name));
866868
if (!tmpPath.renameTo(newPath)) {
867-
Log.w(Log.TAG_DATABASE, "Upgrade failed: Failed to rename db folder from temporary name: %s -> %s", tmpPath, newPath);
869+
Log.w(Log.TAG_DATABASE,
870+
"Upgrade failed: Failed to rename db folder from temporary name: %s -> %s",
871+
tmpPath, newPath);
872+
upgrader = new DatabaseUpgrade(this, getDatabase(tempName, false), dbPath);
873+
upgrader.backOut();
868874
return false;
869875
}
870876

871877
// reopen db with name
872878
db = getDatabase(name, false);
873879
if (!db.exists()) {
874-
Log.w(Log.TAG_DATABASE, "Upgrade failed: Failed to open the database after migrate: %s", name);
880+
Log.w(Log.TAG_DATABASE,
881+
"Upgrade failed: Failed to open the database after migrate: %s", name);
875882
return false;
876883
}
877884
}

0 commit comments

Comments
 (0)