This is an automated email from the ASF dual-hosted git repository.
jensdeppe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 439309b GEODE-5463: Generated restore.bat script is incorrect for
Windows (#2170)
439309b is described below
commit 439309b514011199a5636871b7f1c2421c5a2da7
Author: Jens Deppe <[email protected]>
AuthorDate: Mon Jul 23 09:51:58 2018 -0700
GEODE-5463: Generated restore.bat script is incorrect for Windows (#2170)
---
.../internal/cache/backup/BackupIntegrationTest.java | 14 ++++++++++++--
.../internal/cache/backup/UnixScriptGeneratorTest.java | 5 ++---
.../geode/internal/cache/backup/UnixScriptGenerator.java | 4 ++--
.../internal/cache/backup/WindowsScriptGenerator.java | 16 +++++++++-------
4 files changed, 25 insertions(+), 14 deletions(-)
diff --git
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
index 8c8b064..7e7af15 100644
---
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
+++
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/BackupIntegrationTest.java
@@ -31,9 +31,11 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URISyntaxException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Properties;
import java.util.Random;
import java.util.concurrent.CompletableFuture;
@@ -380,7 +382,16 @@ public class BackupIntegrationTest {
private void execute(File script, boolean expectFailure)
throws IOException, InterruptedException {
- ProcessBuilder pb = new ProcessBuilder(script.getAbsolutePath());
+ List<String> command = new ArrayList<>();
+
+ boolean isWindows = script.getName().endsWith("bat");
+ if (isWindows) {
+ command.add("cmd.exe");
+ command.add("/c");
+ }
+
+ command.add(script.getAbsolutePath());
+ ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process process = pb.start();
@@ -393,7 +404,6 @@ public class BackupIntegrationTest {
}
int result = process.waitFor();
- boolean isWindows = script.getName().endsWith("bat");
// On Windows XP, the process returns 0 even though we exit with a
non-zero status.
// So let's not bother asserting the return value on XP.
if (!isWindows) {
diff --git
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/UnixScriptGeneratorTest.java
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/UnixScriptGeneratorTest.java
index 3907cd2..a3536e5 100644
---
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/UnixScriptGeneratorTest.java
+++
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/backup/UnixScriptGeneratorTest.java
@@ -71,9 +71,8 @@ public class UnixScriptGeneratorTest {
scriptGenerator.writeCopyDirectoryContents(writer, backupDirToCopy,
dirWithBackups, true);
writer.flush();
List<String> output = Files.readAllLines(outputFile.toPath());
- assertThat(output).hasSize(3);
- assertThat(output).containsExactly("mkdir -p '" + dirWithoutBackups + "'",
- "mkdir -p '" + dirWithBackups + "'",
+ assertThat(output).hasSize(2);
+ assertThat(output).containsExactly("mkdir -p '" + dirWithBackups + "'",
"cp -rp '" + backupDirToCopy + "'/* '" + dirWithBackups + "'");
}
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/UnixScriptGenerator.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/UnixScriptGenerator.java
index 5c36a01..b45592f 100644
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/UnixScriptGenerator.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/UnixScriptGenerator.java
@@ -39,9 +39,9 @@ class UnixScriptGenerator implements ScriptGenerator {
@Override
public void writeCopyDirectoryContents(final BufferedWriter writer, final
File backup,
final File original, final boolean backupHasFiles) throws IOException {
- writer.write("mkdir -p '" + original + "'");
- writer.newLine();
if (backupHasFiles) {
+ writer.write("mkdir -p '" + original + "'");
+ writer.newLine();
writer.write("cp -rp '" + backup + "'/* '" + original + "'");
writer.newLine();
}
diff --git
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/WindowsScriptGenerator.java
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/WindowsScriptGenerator.java
index 7f35691..747e14d 100644
---
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/WindowsScriptGenerator.java
+++
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/WindowsScriptGenerator.java
@@ -50,13 +50,15 @@ class WindowsScriptGenerator implements ScriptGenerator {
@Override
public void writeCopyDirectoryContents(BufferedWriter writer, File backup,
File original,
boolean backupHasFiles) throws IOException {
- writer.write(MKDIR + " \"" + original + "\"");
- writer.newLine();
- writer.write(ROBOCOPY_COMMAND + " \"" + backup + "\" \"" + original + "\" "
- + ROBOCOPY_COPY_SUBDIRS + " " + ROBOCOPY_NO_JOB_HEADER + " " +
ROBOCOPY_NO_JOB_SUMMARY);
- writer.newLine();
- writer.write(ERROR_CHECK);
- writer.newLine();
+ if (backupHasFiles) {
+ writer.write(MKDIR + " \"" + original + "\"");
+ writer.newLine();
+ writer.write(ROBOCOPY_COMMAND + " \"" + backup + "\" \"" + original +
"\" "
+ + ROBOCOPY_COPY_SUBDIRS + " " + ROBOCOPY_NO_JOB_HEADER + " " +
ROBOCOPY_NO_JOB_SUMMARY);
+ writer.newLine();
+ writer.write(ERROR_CHECK);
+ writer.newLine();
+ }
}
@Override