Repository: samza
Updated Branches:
  refs/heads/0.14.0 bb3007d69 -> 23bfaa8d1


SAMZA-1358: fix the bug in validating task.class empty string when app.class is 
configured

…p.class is configured

Another bug due to scala/java differences.

Author: Yi Pan (Data Infrastructure) <nickpa...@gmail.com>

Reviewers: Jacob Maes <jm...@linkedin.com>

Closes #242 from nickpan47/SAMZA-1358


Project: http://git-wip-us.apache.org/repos/asf/samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/be989935
Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/be989935
Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/be989935

Branch: refs/heads/0.14.0
Commit: be989935c2fcc6ead114ce308ebaa93855ecb582
Parents: b167963
Author: Yi Pan (Data Infrastructure) <nickpa...@gmail.com>
Authored: Tue Jul 11 10:55:51 2017 -0700
Committer: Yi Pan (Data Infrastructure) <nickpa...@gmail.com>
Committed: Tue Jul 11 10:55:51 2017 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/samza/task/TaskFactoryUtil.java |  5 ++++-
 .../java/org/apache/samza/task/TestTaskFactoryUtil.java  | 11 +++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza/blob/be989935/samza-core/src/main/java/org/apache/samza/task/TaskFactoryUtil.java
----------------------------------------------------------------------
diff --git 
a/samza-core/src/main/java/org/apache/samza/task/TaskFactoryUtil.java 
b/samza-core/src/main/java/org/apache/samza/task/TaskFactoryUtil.java
index 6408e6f..1fe9187 100644
--- a/samza-core/src/main/java/org/apache/samza/task/TaskFactoryUtil.java
+++ b/samza-core/src/main/java/org/apache/samza/task/TaskFactoryUtil.java
@@ -32,6 +32,8 @@ import java.util.concurrent.ExecutorService;
 
 import scala.runtime.AbstractFunction0;
 
+import static org.apache.samza.util.ScalaToJavaUtils.defaultValue;
+
 /**
  * This class provides utility functions to load task factory classes based on 
config, and to wrap {@link StreamTaskFactory} in {@link AsyncStreamTaskFactory}
  * when running {@link StreamTask}s in multi-thread mode
@@ -162,7 +164,8 @@ public class TaskFactoryUtil {
     ApplicationConfig appConfig = new ApplicationConfig(config);
     if (appConfig.getAppClass() != null && !appConfig.getAppClass().isEmpty()) 
{
       TaskConfig taskConfig = new TaskConfig(config);
-      if (taskConfig.getTaskClass() != null && 
!taskConfig.getTaskClass().isEmpty()) {
+      String taskClassName = 
taskConfig.getTaskClass().getOrElse(defaultValue(null));
+      if (taskClassName != null && !taskClassName.isEmpty()) {
         throw new ConfigException("High level StreamApplication API cannot be 
used together with low-level API using task.class.");
       }
 

http://git-wip-us.apache.org/repos/asf/samza/blob/be989935/samza-core/src/test/java/org/apache/samza/task/TestTaskFactoryUtil.java
----------------------------------------------------------------------
diff --git 
a/samza-core/src/test/java/org/apache/samza/task/TestTaskFactoryUtil.java 
b/samza-core/src/test/java/org/apache/samza/task/TestTaskFactoryUtil.java
index e300996..942792f 100644
--- a/samza-core/src/test/java/org/apache/samza/task/TestTaskFactoryUtil.java
+++ b/samza-core/src/test/java/org/apache/samza/task/TestTaskFactoryUtil.java
@@ -156,6 +156,17 @@ public class TestTaskFactoryUtil {
     } catch (ConfigException ce) {
       // expected
     }
+
+
+    config = new MapConfig(new HashMap<String, String>() {
+      {
+        this.put("task.class", "");
+        this.put(ApplicationConfig.APP_CLASS, 
"org.apache.samza.testUtils.TestStreamApplication");
+      }
+    });
+    streamApp = TaskFactoryUtil.createStreamApplication(config);
+    assertNotNull(streamApp);
+
   }
 
   @Test

Reply via email to