[ https://issues.apache.org/jira/browse/HELIX-592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14539227#comment-14539227 ]
ASF GitHub Bot commented on HELIX-592: -------------------------------------- Github user kanakb commented on a diff in the pull request: https://github.com/apache/helix/pull/27#discussion_r30104417 --- Diff: helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java --- @@ -715,14 +715,26 @@ public ExternalView getResourceExternalView(String clusterName, String resourceN @Override public void addStateModelDef(String clusterName, String stateModelDef, StateModelDefinition stateModel) { + addStateModelDef(clusterName, stateModelDef, stateModel, false); + } + + @Override + public void addStateModelDef(String clusterName, String stateModelDef, + StateModelDefinition stateModel, boolean recreateIfExists) { if (!ZKUtil.isClusterSetup(clusterName, _zkClient)) { throw new HelixException("cluster " + clusterName + " is not setup yet"); } String stateModelDefPath = HelixUtil.getStateModelDefinitionPath(clusterName); String stateModelPath = stateModelDefPath + "/" + stateModelDef; if (_zkClient.exists(stateModelPath)) { - logger.warn("Skip the operation.State Model directory exists:" + stateModelPath); - throw new HelixException("State model path " + stateModelPath + " already exists."); + if (recreateIfExists) { + logger.warn("Operation.State Model directory exists:" + stateModelPath + + ", remove and recreate."); + _zkClient.deleteRecursive(stateModelPath); + } else { + logger.warn("Skip the operation.State Model directory exists:" + stateModelPath); + return; --- End diff -- Why was this changed to no longer throw an exception? It's better to fail loudly in methods that return `void`. > addCluster should respect overwriteExisitng when adding stateModelDefinations > ----------------------------------------------------------------------------- > > Key: HELIX-592 > URL: https://issues.apache.org/jira/browse/HELIX-592 > Project: Apache Helix > Issue Type: Bug > Reporter: Congrui Ji > > Currently addCluster in clusterSetup.java ignores the overwriteExisitng > parameter while adding stateModelDefinations. This causes exception > -StateModelDef already exist. please help fix this -- This message was sent by Atlassian JIRA (v6.3.4#6332)