Repository: apex-core Updated Branches: refs/heads/master 47f1d9121 -> e4d44e559
APEXCORE-723 Replace double quotes with a single quotes in command line arguments for passing of the logger appender properties Fixed the issue. Project: http://git-wip-us.apache.org/repos/asf/apex-core/repo Commit: http://git-wip-us.apache.org/repos/asf/apex-core/commit/e4d44e55 Tree: http://git-wip-us.apache.org/repos/asf/apex-core/tree/e4d44e55 Diff: http://git-wip-us.apache.org/repos/asf/apex-core/diff/e4d44e55 Branch: refs/heads/master Commit: e4d44e559376eb6203e19f186139334ad1b3f318 Parents: 47f1d91 Author: Sergey Golovko <[email protected]> Authored: Wed May 17 16:06:35 2017 -0700 Committer: Sergey Golovko <[email protected]> Committed: Tue May 30 14:25:07 2017 -0700 ---------------------------------------------------------------------- .../stram/LaunchContainerRunnable.java | 6 +--- .../java/com/datatorrent/stram/StramClient.java | 6 +--- .../stram/client/StramClientUtils.java | 6 ++-- .../datatorrent/stram/StramMiniClusterTest.java | 32 ++++++++++++++++++++ 4 files changed, 38 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/apex-core/blob/e4d44e55/engine/src/main/java/com/datatorrent/stram/LaunchContainerRunnable.java ---------------------------------------------------------------------- diff --git a/engine/src/main/java/com/datatorrent/stram/LaunchContainerRunnable.java b/engine/src/main/java/com/datatorrent/stram/LaunchContainerRunnable.java index 75acdf7..437c2fd 100644 --- a/engine/src/main/java/com/datatorrent/stram/LaunchContainerRunnable.java +++ b/engine/src/main/java/com/datatorrent/stram/LaunchContainerRunnable.java @@ -230,11 +230,6 @@ public class LaunchContainerRunnable implements Runnable } } - String loggerAppender = dag.getValue(LogicalPlan.LOGGER_APPENDER); - if (loggerAppender != null) { - vargs.add(String.format("-D%s=\"%s\"", LogicalPlan.LOGGER_APPENDER.getLongName(), loggerAppender)); - } - List<DAG.OperatorMeta> operatorMetaList = Lists.newArrayList(); int bufferServerMemory = 0; for (PTOperator operator : sca.getContainer().getOperators()) { @@ -254,6 +249,7 @@ public class LaunchContainerRunnable implements Runnable vargs.add("-Dhadoop.root.logger=" + (dag.isDebug() ? "DEBUG" : "INFO") + ",RFA"); vargs.add("-Dhadoop.log.dir=" + ApplicationConstants.LOG_DIR_EXPANSION_VAR); StramClientUtils.addAttributeToArgs(LogicalPlan.APPLICATION_NAME, dag, vargs); + StramClientUtils.addAttributeToArgs(LogicalPlan.LOGGER_APPENDER, dag, vargs); String loggersLevel = System.getProperty(StramUtils.DT_LOGGERS_LEVEL); if (loggersLevel != null) { http://git-wip-us.apache.org/repos/asf/apex-core/blob/e4d44e55/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 51d52c6..f8a3194 100644 --- a/engine/src/main/java/com/datatorrent/stram/StramClient.java +++ b/engine/src/main/java/com/datatorrent/stram/StramClient.java @@ -573,15 +573,11 @@ public class StramClient vargs.add("-Dhadoop.log.dir=" + ApplicationConstants.LOG_DIR_EXPANSION_VAR); vargs.add(String.format("-D%s=%s", StreamingContainer.PROP_APP_PATH, dag.assertAppPath())); StramClientUtils.addAttributeToArgs(LogicalPlan.APPLICATION_NAME, dag, vargs); + StramClientUtils.addAttributeToArgs(LogicalPlan.LOGGER_APPENDER, dag, vargs); if (dag.isDebug()) { vargs.add("-Dlog4j.debug=true"); } - String loggerAppender = dag.getValue(LogicalPlan.LOGGER_APPENDER); - if (loggerAppender != null) { - vargs.add(String.format("-D%s=\"%s\"", LogicalPlan.LOGGER_APPENDER.getLongName(), loggerAppender)); - } - String loggersLevel = conf.get(StramUtils.DT_LOGGERS_LEVEL); if (loggersLevel != null) { vargs.add(String.format("-D%s=%s", StramUtils.DT_LOGGERS_LEVEL, loggersLevel)); http://git-wip-us.apache.org/repos/asf/apex-core/blob/e4d44e55/engine/src/main/java/com/datatorrent/stram/client/StramClientUtils.java ---------------------------------------------------------------------- diff --git a/engine/src/main/java/com/datatorrent/stram/client/StramClientUtils.java b/engine/src/main/java/com/datatorrent/stram/client/StramClientUtils.java index eead871..d9032e5 100644 --- a/engine/src/main/java/com/datatorrent/stram/client/StramClientUtils.java +++ b/engine/src/main/java/com/datatorrent/stram/client/StramClientUtils.java @@ -874,8 +874,10 @@ public class StramClientUtils public static void addAttributeToArgs(Attribute<String> attribute, Context context, List<CharSequence> vargs) { - if (context.getValue(attribute) != null) { - vargs.add(String.format("-D%s=$'%s'", attribute.getLongName(), context.getValue(attribute).replaceAll("['\"$\\\\]", "\\\\$0"))); + String value = context.getValue(attribute); + if (value != null) { + vargs.add(String.format("-D%s=$'%s'", attribute.getLongName(), + value.replace("\\", "\\\\\\\\").replaceAll("['\"$]", "\\\\$0"))); } } } http://git-wip-us.apache.org/repos/asf/apex-core/blob/e4d44e55/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java ---------------------------------------------------------------------- diff --git a/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java b/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java index ca85f5d..455604b 100644 --- a/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java +++ b/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java @@ -603,4 +603,36 @@ public class StramMiniClusterTest } + private static String APP_NAME = "$test\\\"'"; + + @Test + public void testAddAttributeToArgs() throws Exception + { + LogicalPlan dag = new LogicalPlan(); + dag.setAttribute(LogicalPlan.APPLICATION_NAME, APP_NAME); + AddAttributeToArgsOperator operator = dag.addOperator("test", AddAttributeToArgsOperator.class); + dag.getContextAttributes(operator).put(OperatorContext.RECOVERY_ATTEMPTS, 0); + + StramClient client = new StramClient(conf, dag); + if (StringUtils.isBlank(System.getenv("JAVA_HOME"))) { + client.javaCmd = "java"; + } + try { + client.start(); + client.startApplication(); + Assert.assertTrue(client.monitorApplication()); + } finally { + client.stop(); + } + } + + public static class AddAttributeToArgsOperator extends BaseOperator implements InputOperator + { + @Override + public void emitTuples() + { + throw APP_NAME.equals(System.getProperty(LogicalPlan.APPLICATION_NAME.getLongName())) + ? new ShutdownException() : new RuntimeException(); + } + } }
