code: public T get(Callable<T> callable) throws Exception {
          T result = _value;
          if (isMissing(result)) synchronized(this) {
              result = _value;
              if (isMissing(result)) {
                  _value = result = callable.call();
              }
          }
          return result;
      }
docs: Retrieves the singleton object, creating it by calling a provider if it is not created yet. This method uses
  double-checked locking to ensure that only one instance will ever be created, while keeping retrieval cost at
  minimum.
  
  @see <a href="http://en.wikipedia.org/wiki/Double-checked_locking">Double-checked locking</a>
  
  @param callable a {@link java.util.concurrent.Callable Callable} that can be called to create a new value without arguments
  @return the singleton object
  @throws Exception if the callable fails to create a new value