Do empty check for override Kylin props when save project.
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/adcd0b67 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/adcd0b67 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/adcd0b67 Branch: refs/heads/2.1.x Commit: adcd0b672958df770913f49d8967bc2c0d7a4a0b Parents: 8307ff4 Author: nichunen <chunen...@kyligence.io> Authored: Fri Jul 14 14:08:25 2017 +0800 Committer: nichunen <chunen...@kyligence.io> Committed: Fri Jul 14 14:08:25 2017 +0800 ---------------------------------------------------------------------- .../kylin/metadata/project/ProjectManager.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/adcd0b67/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java index b801d8c..81e7647 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java @@ -21,6 +21,7 @@ package org.apache.kylin.metadata.project; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -28,7 +29,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.JsonSerializer; import org.apache.kylin.common.persistence.ResourceStore; @@ -260,6 +261,20 @@ public class ProjectManager { private void updateProject(ProjectInstance prj) throws IOException { synchronized (prj) { + LinkedHashMap<String, String> overrideProps = prj.getOverrideKylinProps(); + + if (overrideProps != null) { + Iterator<Map.Entry<String, String>> iterator = overrideProps.entrySet().iterator(); + + while (iterator.hasNext()) { + Map.Entry<String, String> entry = iterator.next(); + + if (StringUtils.isAnyBlank(entry.getKey(), entry.getValue())) { + throw new IllegalStateException("Property key/value must not be blank"); + } + } + } + getStore().putResource(prj.getResourcePath(), prj, PROJECT_SERIALIZER); projectMap.put(norm(prj.getName()), prj); // triggers update broadcast clearL2Cache();