Skip to content

Commit d1cac5c

Browse files
committed
fix(bulk-model-sync): avoid overwriting existing original references
1 parent 0678bb8 commit d1cac5c

File tree

1 file changed

+7
-3
lines changed
  • bulk-model-sync-lib/src/commonMain/kotlin/org/modelix/model/sync/bulk

1 file changed

+7
-3
lines changed

bulk-model-sync-lib/src/commonMain/kotlin/org/modelix/model/sync/bulk/ModelImporter.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,10 @@ class ModelImporter(
185185
.forEach { (newChild, expected) ->
186186
val expectedId = expected.originalId()
187187
checkNotNull(expectedId) { "Specified node '$expected' has no ID." }
188-
newChild.setPropertyValue(NodeData.idPropertyKey, expectedId)
189-
originalIdToExisting[expectedId] = newChild.reference
188+
if (newChild.originalId() == null) {
189+
newChild.setPropertyValue(NodeData.ID_PROPERTY_KEY, expectedId)
190+
}
191+
originalIdToExisting[newChild.originalId() ?: expectedId] = newChild.reference
190192
syncNode(newChild, expected, progressReporter)
191193
}
192194
continue
@@ -224,7 +226,9 @@ class ModelImporter(
224226
val existingNodeReference = originalIdToExisting[expectedId]
225227
if (existingNodeReference == null) {
226228
val newChild = existingParent.addNewChild(role, newIndex, expectedConcept)
227-
newChild.setPropertyValue(NodeData.idPropertyKey, expectedId)
229+
if (newChild.originalId() == null) {
230+
newChild.setPropertyValue(NodeData.idPropertyKey, expectedId)
231+
}
228232
originalIdToExisting[expectedId] = newChild.reference
229233
newChild
230234
} else {

0 commit comments

Comments
 (0)