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