[Fix] Handle missing version on versioned elements
This commit is contained in:
parent
251d0cab1f
commit
29302a79b0
|
@ -78,8 +78,15 @@ public abstract class CachedElementMap<T extends StrolchRootElement> extends Tra
|
||||||
|
|
||||||
private void updateVersion(StrolchTransaction tx, T element, boolean deleted) {
|
private void updateVersion(StrolchTransaction tx, T element, boolean deleted) {
|
||||||
if (this.realm.isVersioningEnabled()) {
|
if (this.realm.isVersioningEnabled()) {
|
||||||
if (!element.hasVersion())
|
if (!element.hasVersion()) {
|
||||||
element.setVersion(getBy(tx, element.getType(), element.getId(), true).getVersion());
|
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);
|
Version.updateVersionFor(element, tx.getCertificate().getUsername(), deleted);
|
||||||
} else {
|
} else {
|
||||||
element.setVersion(getBy(tx, element.getType(), element.getId(), true).getVersion());
|
element.setVersion(getBy(tx, element.getType(), element.getId(), true).getVersion());
|
||||||
|
|
Loading…
Reference in New Issue