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