This is an automated email from the ASF dual-hosted git repository. shaofengshi pushed a commit to branch 2.5.x in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 3e6307473d60036feb8c8497379eb4841d82d093 Author: GinaZhai <na.z...@kyligence.io> AuthorDate: Fri Sep 7 11:33:13 2018 +0800 KYLIN-3258 No check for duplicate cube name when creating a hybrid cube --- .../main/java/org/apache/kylin/rest/job/HybridCubeCLI.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server-base/src/main/java/org/apache/kylin/rest/job/HybridCubeCLI.java b/server-base/src/main/java/org/apache/kylin/rest/job/HybridCubeCLI.java index 48e7f40..e332e1d 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/job/HybridCubeCLI.java +++ b/server-base/src/main/java/org/apache/kylin/rest/job/HybridCubeCLI.java @@ -20,11 +20,14 @@ package org.apache.kylin.rest.job; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; import java.util.List; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.ResourceStore; @@ -145,6 +148,17 @@ public class HybridCubeCLI extends AbstractApplication { realizationEntries.add(RealizationEntry.create(RealizationType.CUBE, cube.getName())); } + int realizationEntriesLen = realizationEntries.size(); + HashSet<RealizationEntry> hashSet = new HashSet<>(); + for (int i = 0; i < realizationEntriesLen; i++) { + hashSet.add(realizationEntries.get(i)); + } + int hashSetLen = hashSet.size(); + if (realizationEntriesLen != hashSetLen) { + Collection<RealizationEntry> duplicateCubes = CollectionUtils.subtract(realizationEntries, hashSet); + throw new IllegalArgumentException("The Cubes name does duplicate, could not create: " + duplicateCubes); + } + if ("create".equals(action)) { if (hybridInstance != null) { throw new IllegalArgumentException("The Hybrid Cube does exist, could not create: " + hybridName);