summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeuin <[email protected]>2021-03-10 09:40:59 +0800
committerKeuin <[email protected]>2021-03-10 09:40:59 +0800
commite11c593c7d21d9602fb951f32f6ced8b30a86254 (patch)
treed36f40b6269f054df3d1b8cd2b3c4a7728c371e8
parentf8fd155c736c921375a17c7f133a17e40ee89041 (diff)
print detailed information if incremental backup fail due to an IO exception.
-rw-r--r--gradle.properties2
-rw-r--r--src/main/java/com/keuin/kbackupfabric/operation/BackupOperation.java2
-rw-r--r--src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java20
-rw-r--r--src/main/java/com/keuin/kbackupfabric/operation/backup/method/ConfiguredIncrementalBackupMethod.java4
4 files changed, 23 insertions, 5 deletions
diff --git a/gradle.properties b/gradle.properties
index 6c867dc..319b673 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -6,7 +6,7 @@ minecraft_version=1.14.4
yarn_mappings=1.14.4+build.18
loader_version=0.11.0
# Mod Properties
-mod_version=1.6.4
+mod_version=1.7.0-pre1
maven_group=com.keuin.kbackupfabric
archives_base_name=kbackup-fabric
# Dependencies
diff --git a/src/main/java/com/keuin/kbackupfabric/operation/BackupOperation.java b/src/main/java/com/keuin/kbackupfabric/operation/BackupOperation.java
index 0d9cb65..1798fb7 100644
--- a/src/main/java/com/keuin/kbackupfabric/operation/BackupOperation.java
+++ b/src/main/java/com/keuin/kbackupfabric/operation/BackupOperation.java
@@ -56,7 +56,7 @@ public class BackupOperation extends InvokableAsyncBlockingOperation {
PrintUtil.msgInfo(context, msgText, true);
} else {
// failed
- PrintUtil.msgErr(context, "Backup operation failed. No further information.");
+ PrintUtil.msgErr(context, "Backup operation failed: " + result.getFeedback());
}
} catch (SecurityException e) {
msgInfo(context, String.format("Failed to create backup saving directory: %s. Failed to backup.", backupSaveDirectory));
diff --git a/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java b/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java
index bdd6d88..696ee02 100644
--- a/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java
+++ b/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java
@@ -3,13 +3,31 @@ package com.keuin.kbackupfabric.operation.backup.feedback;
import com.keuin.kbackupfabric.backup.incremental.manager.IncCopyResult;
import org.jetbrains.annotations.Nullable;
+import java.util.Objects;
+
public class IncrementalBackupFeedback implements BackupFeedback {
private final boolean success;
private final IncCopyResult copyResult;
+ // if the backup failed because of an exception, set this.
+ // Otherwise, this should be null.
+ private final Throwable throwable;
public IncrementalBackupFeedback(boolean success, @Nullable IncCopyResult copyResult) {
this.success = success;
this.copyResult = copyResult;
+ this.throwable = null;
+ }
+
+ /**
+ * Create a failed backup feedback caused by an exception.
+ *
+ * @param t the exception.
+ */
+ public IncrementalBackupFeedback(Throwable t) {
+ Objects.requireNonNull(t);
+ this.success = false;
+ this.copyResult = null;
+ this.throwable = t;
}
@Override
@@ -26,6 +44,6 @@ public class IncrementalBackupFeedback implements BackupFeedback {
if (success && copyResult != null)
return copyResult.toString();
else
- return "Backup failed.";
+ return (throwable == null) ? "No further information." : (throwable.getLocalizedMessage());
}
}
diff --git a/src/main/java/com/keuin/kbackupfabric/operation/backup/method/ConfiguredIncrementalBackupMethod.java b/src/main/java/com/keuin/kbackupfabric/operation/backup/method/ConfiguredIncrementalBackupMethod.java
index 0c202e1..2cc0765 100644
--- a/src/main/java/com/keuin/kbackupfabric/operation/backup/method/ConfiguredIncrementalBackupMethod.java
+++ b/src/main/java/com/keuin/kbackupfabric/operation/backup/method/ConfiguredIncrementalBackupMethod.java
@@ -99,8 +99,8 @@ public class ConfiguredIncrementalBackupMethod implements ConfiguredBackupMethod
PrintUtil.info("Incremental backup finished.");
feedback = new IncrementalBackupFeedback(true, copyResult);
} catch (IOException e) {
- e.printStackTrace(); // at least we should print it out if we discard the exception... Better than doing nothing.
- feedback = new IncrementalBackupFeedback(false, null);
+// e.printStackTrace(); // stack trace has been passed to backup feedback. No need to print here.
+ feedback = new IncrementalBackupFeedback(e);
}
// do clean-up if failed