diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java index d47ccb2ab..8f2d40ee0 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java @@ -16,37 +16,30 @@ */ package org.apache.commons.lang3.concurrent; +import org.apache.commons.lang3.function.FailableSupplier; + /** - * Definition of an interface for the thread-safe initialization of objects. - * + * Defines the thread-safe initialization of objects. *
- * The idea behind this interface is to provide access to an object in a - * thread-safe manner. A {@link ConcurrentInitializer} can be passed to multiple - * threads which can all access the object produced by the initializer. Through - * the {@link #get()} method the object can be queried. + * The idea behind this interface is to provide access to an object in a thread-safe manner. A {@link ConcurrentInitializer} can be passed to multiple threads + * which can all access the object produced by the initializer. Through the {@link #get()} method the object can be queried. *
*- * Concrete implementations of this interface will use different strategies for - * the creation of the managed object, e.g. lazy initialization or - * initialization in a background thread. This is completely transparent to - * client code, so it is possible to change the initialization strategy without - * affecting clients. + * Concrete implementations of this interface will use different strategies for the creation of the managed object, e.g. lazy initialization or initialization + * in a background thread. This is completely transparent to client code, so it is possible to change the initialization strategy without affecting clients. + *
+ *+ * An implementation of {@link #get()} returns the fully initialized object produced by this {@code + * ConcurrentInitializer}. A concrete implementation here returns the results of the initialization process. This method may block until results are available. + * Typically, once created the result object is always the same. + *
+ *+ * An implementation throws {@link ConcurrentException} if an error occurred during initialization of the object. *
* * @since 3.0 - * @param