AtomicInitializer.java 898 Bytes
package org.apache.commons.lang3.concurrent;

import java.util.concurrent.atomic.AtomicReference;

public abstract class AtomicInitializer<T>
  implements ConcurrentInitializer<T>
{
  private final AtomicReference<T> a = new AtomicReference();
  
  public T get()
    throws ConcurrentException
  {
    Object localObject2 = this.a.get();
    Object localObject1 = localObject2;
    if (localObject2 == null)
    {
      localObject2 = initialize();
      localObject1 = localObject2;
      if (!this.a.compareAndSet(null, localObject2)) {
        localObject1 = this.a.get();
      }
    }
    return (T)localObject1;
  }
  
  protected abstract T initialize()
    throws ConcurrentException;
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/org/apache/commons/lang3/concurrent/AtomicInitializer.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */