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();
+    }
+  }
 }

Reply via email to