Repository: apex-core Updated Branches: refs/heads/master ffab17ac6 -> 05c798d5c
APEXCORE-590: Failed to restart application on MapR - Corrected FS path from URI format to FS Project: http://git-wip-us.apache.org/repos/asf/apex-core/repo Commit: http://git-wip-us.apache.org/repos/asf/apex-core/commit/72d640e3 Tree: http://git-wip-us.apache.org/repos/asf/apex-core/tree/72d640e3 Diff: http://git-wip-us.apache.org/repos/asf/apex-core/diff/72d640e3 Branch: refs/heads/master Commit: 72d640e341e9001043a537f830e6a43d40f1ea15 Parents: 3f06ce7 Author: Pradeep A. Dalvi <[email protected]> Authored: Fri Dec 16 19:30:18 2016 +0530 Committer: Pradeep A. Dalvi <[email protected]> Committed: Wed Jan 4 16:55:37 2017 +0530 ---------------------------------------------------------------------- .../main/java/com/datatorrent/stram/StramClient.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/apex-core/blob/72d640e3/engine/src/main/java/com/datatorrent/stram/StramClient.java ---------------------------------------------------------------------- diff --git a/engine/src/main/java/com/datatorrent/stram/StramClient.java b/engine/src/main/java/com/datatorrent/stram/StramClient.java index d6bcfb4..423af13 100644 --- a/engine/src/main/java/com/datatorrent/stram/StramClient.java +++ b/engine/src/main/java/com/datatorrent/stram/StramClient.java @@ -285,9 +285,20 @@ public class StramClient // copy sub directories that are not present in target FileStatus[] lFiles = fs.listStatus(origAppDir); + + // In case of MapR/MapR-FS, f.getPath().toString() returns path as maprfs:///<orig app dir> + // whereas origAppDir.toString & newAppDir are in maprfs:/<orig or new app dir> format + // e.g. + // f.getPath().toString -> maprfs:///user/dtadmin/datatorrent/apps/application_1481890072066_0004/checkpoints + // origAppDir -> maprfs:/user/dtadmin/datatorrent/apps/application_1481890072066_0004 + // newAppDir -> maprfs:/user/dtadmin/datatorrent/apps/application_1481890072066_0005 + + String origAppDirPath = Path.getPathWithoutSchemeAndAuthority(origAppDir).toString(); + String newAppDirPath = Path.getPathWithoutSchemeAndAuthority(new Path(newAppDir)).toString(); + for (FileStatus f : lFiles) { if (f.isDirectory()) { - String targetPath = f.getPath().toString().replace(origAppDir.toString(), newAppDir); + String targetPath = f.getPath().toString().replace(origAppDirPath, newAppDirPath); if (!fs.exists(new Path(targetPath))) { LOG.debug("Copying {} to {}", f.getPath(), targetPath); FileUtil.copy(fs, f.getPath(), fs, new Path(targetPath), false, conf);
