aboutsummaryrefslogtreecommitdiff
path: root/usage_examples/GetterLazyExample_post.jpage
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2013-07-22 23:23:46 +0200
committerReinier Zwitserloot <reinier@zwitserloot.com>2013-07-22 23:23:46 +0200
commit45697b50816df79475a8bb69dc89ff68747fbfe6 (patch)
tree25cb023eec1f74baf5063cc5a58a5351ee43d6f0 /usage_examples/GetterLazyExample_post.jpage
parent4c03e3d220900431085897878d4888bf530b31ec (diff)
parentdeed98be16e5099af52d951fc611f86a82a42858 (diff)
downloadlombok-45697b50816df79475a8bb69dc89ff68747fbfe6.tar.gz
lombok-45697b50816df79475a8bb69dc89ff68747fbfe6.tar.bz2
lombok-45697b50816df79475a8bb69dc89ff68747fbfe6.zip
Merge branch 'master' into jdk8. Also added some major fixes whilst merging.
Conflicts: src/core/lombok/javac/handlers/JavacHandlerUtil.java src/utils/lombok/javac/CommentCatcher.java src/utils/lombok/javac/Javac.java
Diffstat (limited to 'usage_examples/GetterLazyExample_post.jpage')
-rw-r--r--usage_examples/GetterLazyExample_post.jpage19
1 files changed, 10 insertions, 9 deletions
diff --git a/usage_examples/GetterLazyExample_post.jpage b/usage_examples/GetterLazyExample_post.jpage
index 9f4b1ba3..afed1748 100644
--- a/usage_examples/GetterLazyExample_post.jpage
+++ b/usage_examples/GetterLazyExample_post.jpage
@@ -1,18 +1,19 @@
public class GetterLazyExample {
- private double[] $lombok$lazy1v;
- private volatile boolean $lombok$lazy1i;
- private final Object $lombok$lazyLock = new Object[0];
+ private final java.util.concurrent.AtomicReference<java.lang.Object> cached = new java.util.concurrent.AtomicReference<java.lang.Object>();
public double[] getCached() {
- if (!this.$lombok$lazy1i) {
- synchronized (this.$lombok$lazyLock) {
- if (!this.$lombok$lazy1i) {
- this.$lombok$lazy1v = expensive();
- this.$lombok$lazy1i = true;
+ java.lang.Object value = this.cached.get();
+ if (value == null) {
+ synchronized(value) {
+ value = this.cached.get();
+ if (value == null) {
+ final double[] actualValue = expensive();
+ value = actualValue == null ? this.cached : actualValue;
+ this.cached.set(value);
}
}
}
- return this.$lombok$lazy1v;
+ return (double[])(value == this.cached ? null : value);
}
private double[] expensive() {