Repository: commons-lang Updated Branches: refs/heads/master 96c8ea2fb -> dc53e49b4
LANG-1144: Multiple calls of org.apache.commons.lang3.concurrent.LazyInitializer.initialize() are possible minimal clean-up Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/dc53e49b Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/dc53e49b Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/dc53e49b Branch: refs/heads/master Commit: dc53e49b4afa5d59c533cf2b4918402c37411fbd Parents: 96c8ea2 Author: pascalschumacher <pascalschumac...@gmx.net> Authored: Sun Oct 23 22:18:47 2016 +0200 Committer: pascalschumacher <pascalschumac...@gmx.net> Committed: Sun Oct 23 22:18:47 2016 +0200 ---------------------------------------------------------------------- .../commons/lang3/concurrent/LazyInitializer.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-lang/blob/dc53e49b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java index a0f903c..ed84049 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java @@ -78,11 +78,12 @@ package org.apache.commons.lang3.concurrent; * @param <T> the type of the object managed by this initializer class */ public abstract class LazyInitializer<T> implements ConcurrentInitializer<T> { + + private static final Object noInit = new Object(); + + @SuppressWarnings("unchecked") /** Stores the managed object. */ - - private static final Object NoInit = new Object(); - - private volatile T object = (T) NoInit; + private volatile T object = (T) noInit; /** * Returns the object wrapped by this instance. On first access the object @@ -98,10 +99,10 @@ public abstract class LazyInitializer<T> implements ConcurrentInitializer<T> { // volatile field T result = object; - if (result == NoInit) { + if (result == noInit) { synchronized (this) { result = object; - if (result == NoInit) { + if (result == noInit) { object = result = initialize(); } }