[Fix] Handle missing version on versioned elements

This commit is contained in:
Robert von Burg 2019-05-07 11:25:57 +02:00
parent 251d0cab1f
commit 29302a79b0
1 changed files with 9 additions and 2 deletions

View File

@ -78,8 +78,15 @@ public abstract class CachedElementMap<T extends StrolchRootElement> 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());