From 29302a79b020517f52c1555e7f4b07c1020e11a1 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Tue, 7 May 2019 11:25:57 +0200 Subject: [PATCH] [Fix] Handle missing version on versioned elements --- .../java/li/strolch/agent/impl/CachedElementMap.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/li.strolch.agent/src/main/java/li/strolch/agent/impl/CachedElementMap.java b/li.strolch.agent/src/main/java/li/strolch/agent/impl/CachedElementMap.java index 037f753fc..7250280ac 100644 --- a/li.strolch.agent/src/main/java/li/strolch/agent/impl/CachedElementMap.java +++ b/li.strolch.agent/src/main/java/li/strolch/agent/impl/CachedElementMap.java @@ -78,8 +78,15 @@ public abstract class CachedElementMap extends Tra private void updateVersion(StrolchTransaction tx, T element, boolean deleted) { if (this.realm.isVersioningEnabled()) { - if (!element.hasVersion()) - element.setVersion(getBy(tx, element.getType(), element.getId(), true).getVersion()); + if (!element.hasVersion()) { + T current = getBy(tx, element.getType(), element.getId(), true); + if (current.hasVersion()) { + element.setVersion(current.getVersion()); + } else { + int currentVersion = getLatestVersionFor(tx, element.getType(), element.getId()); + Version.updateVersionFor(element, currentVersion, tx.getCertificate().getUsername(), deleted); + } + } Version.updateVersionFor(element, tx.getCertificate().getUsername(), deleted); } else { element.setVersion(getBy(tx, element.getType(), element.getId(), true).getVersion());