Skip to content

Commit d3b107b

Browse files
committed
fix(workflows): null-safe FieldDiff compact constructor, zh-CN locale for approval notification
1 parent ad71742 commit d3b107b

3 files changed

Lines changed: 32 additions & 1 deletion

File tree

openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/util/ChangePreviewUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ public final class ChangePreviewUtils {
4848
private ChangePreviewUtils() {}
4949

5050
public record FieldDiff(List<String> added, List<String> removed) {
51+
public FieldDiff {
52+
added = added != null ? added : List.of();
53+
removed = removed != null ? removed : List.of();
54+
}
55+
5156
FieldDiff merge(FieldDiff next) {
5257
return new FieldDiff(
5358
union(minus(added, next.removed), minus(next.added, removed)),

openmetadata-service/src/test/java/org/openmetadata/service/governance/workflows/util/ChangePreviewUtilsTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,32 @@ void parseChangeMap_validJson_roundTrips() {
255255
assertEquals(List.of("PII.None"), parsed.get("tags").removed());
256256
}
257257

258+
@Test
259+
void parseChangeMap_missingRemovedField_defaultsToEmpty() {
260+
String json = "{\"tags\":{\"added\":[\"PII.Sensitive\"]}}";
261+
Map<String, FieldDiff> parsed = ChangePreviewUtils.parseChangeMap(json);
262+
263+
assertEquals(List.of("PII.Sensitive"), parsed.get("tags").added());
264+
assertTrue(parsed.get("tags").removed().isEmpty());
265+
}
266+
267+
@Test
268+
void parseChangeMap_missingAddedField_defaultsToEmpty() {
269+
String json = "{\"tags\":{\"removed\":[\"PII.None\"]}}";
270+
Map<String, FieldDiff> parsed = ChangePreviewUtils.parseChangeMap(json);
271+
272+
assertTrue(parsed.get("tags").added().isEmpty());
273+
assertEquals(List.of("PII.None"), parsed.get("tags").removed());
274+
}
275+
276+
@Test
277+
void fieldDiff_nullComponentsInConstructor_defaultToEmpty() {
278+
FieldDiff diff = new FieldDiff(null, null);
279+
assertTrue(diff.added().isEmpty());
280+
assertTrue(diff.removed().isEmpty());
281+
assertTrue(diff.isEmpty());
282+
}
283+
258284
// ---------------------------------------------------------------------------
259285
// hasNoChanges
260286
// ---------------------------------------------------------------------------

openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3023,7 +3023,7 @@
30233023
"remove-lineage-edge": "删除血缘连线",
30243024
"rename-entity": "修改{{entity}}的名称和显示名",
30253025
"request-approval-message": "批准请求",
3026-
"request-approval-notification": "Approval required for",
3026+
"request-approval-notification": "需要批准:",
30273027
"request-description": "请求详细描述",
30283028
"request-description-message": "请求描述",
30293029
"request-tags-message": "请求标签",

0 commit comments

Comments
 (0)