diff --git a/infra/axiom/src/main/java/com/evolveum/axiom/concepts/AbstractLazy.java b/infra/axiom/src/main/java/com/evolveum/axiom/concepts/AbstractLazy.java index f901fdac12b..bd852ee2fce 100644 --- a/infra/axiom/src/main/java/com/evolveum/axiom/concepts/AbstractLazy.java +++ b/infra/axiom/src/main/java/com/evolveum/axiom/concepts/AbstractLazy.java @@ -8,20 +8,21 @@ public abstract class AbstractLazy { - private Object value; + private volatile Object value; AbstractLazy(Object supplier) { value = supplier; } T unwrap() { - if (value instanceof Lazy.Supplier) { + Object val = this.value; + if (val instanceof Lazy.Supplier) { //noinspection unchecked - value = ((Lazy.Supplier) value).get(); + this.value = ((Lazy.Supplier) val).get(); return unwrap(); } //noinspection unchecked - return (T) value; + return (T) val; } @Override