This is an automated email from the ASF dual-hosted git repository.

jlfsdtc pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/kylin5 by this push:
     new d9bf2a9dc4 KYLIN-6023 fix invalid model renaming
d9bf2a9dc4 is described below

commit d9bf2a9dc458103575729f8614178a66711883a5
Author: 夏旭晨 <[email protected]>
AuthorDate: Tue Nov 12 10:22:38 2024 +0800

    KYLIN-6023 fix invalid model renaming
    
    Co-authored-by: xuchen.xia <[email protected]>
---
 .../apache/kylin/rest/service/ModelService.java    | 25 ++++++++++------------
 .../kylin/rest/service/ModelServiceTest.java       |  4 ++++
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git 
a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
 
b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
index f669e1e571..9de899680a 100644
--- 
a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
+++ 
b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
@@ -1354,22 +1354,19 @@ public class ModelService extends AbstractModelService
     public void renameDataModel(String project, String modelId, String 
newAlias, String description) {
         aclEvaluate.checkProjectWritePermission(project);
         NDataModelManager modelManager = getManager(NDataModelManager.class, 
project);
-        NDataModel nDataModel = getModelById(modelId, project);
-        //rename
-
-        if (description != null && 
nDataModel.getAlias().equalsIgnoreCase(newAlias)) {
-            nDataModel.setDescription(description);
-        } else {
-            checkAliasExist(modelId, newAlias, project);
-            checkAliasIsExceededLimit(newAlias);
-            nDataModel.setAlias(newAlias);
-            if (description != null) {
+        modelManager.updateDataModel(modelId, nDataModel -> {
+            //rename
+            if (description != null && 
nDataModel.getAlias().equalsIgnoreCase(newAlias)) {
                 nDataModel.setDescription(description);
+            } else {
+                checkAliasExist(modelId, newAlias, project);
+                checkAliasIsExceededLimit(newAlias);
+                nDataModel.setAlias(newAlias);
+                if (description != null) {
+                    nDataModel.setDescription(description);
+                }
             }
-        }
-
-        NDataModel modelUpdate = modelManager.copyForWrite(nDataModel);
-        modelManager.updateDataModelDesc(modelUpdate);
+        });
     }
 
     @Transaction(project = 0)
diff --git 
a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
 
b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
index d8b75c706f..8cf66dcc52 100644
--- 
a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
+++ 
b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
@@ -1279,6 +1279,10 @@ public class ModelServiceTest extends SourceTestCase {
         List<NDataModelResponse> models = modelService.getModels("new_name", 
"default", true, "", null, "last_modify",
                 true);
         Assert.assertEquals("new_name", models.get(0).getAlias());
+        modelService.renameDataModel("default", 
"89af4ee2-2cdb-4b07-b39e-4c29856309aa", "New_Name", "test desc");
+        models = modelService.getModels("new_name", "default", true, "", null, 
"last_modify", true);
+        Assert.assertEquals("new_name", models.get(0).getAlias());
+        Assert.assertEquals("test desc", models.get(0).getDescription());
     }
 
     @Test

Reply via email to