[fixes #3448] Keep initializer position for lazy getter

This commit is contained in:
Rawi01 committed 2023-08-13 16:07:39 +02:00
1 parent 000ce6d19a
commit ba47865bf0
10 files changed
+77 -21

No files matched your search

@@ -0,0 +1,19 @@
class GetterLazyErrorPosition {
private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
@java.lang.SuppressWarnings({"all", "unchecked"})
public String getField() {
java.lang.Object value = this.field.get();
if (value == null) {
synchronized (this.field) {
value = this.field.get();
if (value == null) {
final String actualValue = true ? "" : new ErrorPosition();
value = actualValue == null ? this.field : actualValue;
this.field.set(value);
}
}
}
return (String) (value == this.field ? null : value);
}
}