@@ -3075,6 +3075,7 @@ public static <V1, V2, V3, R> R recur3(final V1 initValue1,
30753075 * @throws NullPointerException if {@code initializer} arg is null
30763076 */
30773077 public static <V > Lazy <V > lazy (final ThSupplier <? extends V , ?> initializer ) {
3078+ initializerArgNotNull (initializer );
30783079 return new SynchronizedLazy <>(initializer );
30793080 }
30803081
@@ -3099,6 +3100,8 @@ public static <V> Lazy<V> lazy(final ThSupplier<? extends V, ?> initializer) {
30993100 */
31003101 public static <V > Lazy <V > lazy (final Object lock ,
31013102 final ThSupplier <? extends V , ?> initializer ) {
3103+ lockArgNotNull (lock );
3104+ initializerArgNotNull (initializer );
31023105 return new SynchronizedLazy <>(lock , initializer );
31033106 }
31043107
@@ -3122,6 +3125,7 @@ public static <V> Lazy<V> lazy(final Object lock,
31223125 public static <V > Lazy <V > lazy (final Lazy .ThreadSafetyMode threadSafetyMode ,
31233126 final ThSupplier <? extends V , ?> initializer ) {
31243127 threadSafetyModeArgNotNull (threadSafetyMode );
3128+ initializerArgNotNull (initializer );
31253129 switch (threadSafetyMode ) {
31263130 case SYNCHRONIZED :
31273131 return new SynchronizedLazy <>(initializer );
@@ -3766,7 +3770,6 @@ private static final class UnsafeLazy<V> implements Lazy<V>, Serializable {
37663770 private Object value ;
37673771
37683772 private UnsafeLazy (final ThSupplier <? extends V , ?> initializer ) {
3769- initializerArgNotNull (initializer );
37703773 this .initializer = initializer ;
37713774 this .value = UNINITIALIZED_VALUE ;
37723775 }
@@ -3812,7 +3815,6 @@ private static final class SafePublicationLazy<V> implements Lazy<V>, Serializab
38123815 private volatile Object value ;
38133816
38143817 private SafePublicationLazy (final ThSupplier <? extends V , ?> initializer ) {
3815- initializerArgNotNull (initializer );
38163818 this .initializer = initializer ;
38173819 this .value = UNINITIALIZED_VALUE ;
38183820 }
@@ -3858,16 +3860,13 @@ private static final class SynchronizedLazy<V> implements Lazy<V>, Serializable
38583860 private volatile Object value ;
38593861
38603862 private SynchronizedLazy (final ThSupplier <? extends V , ?> initializer ) {
3861- initializerArgNotNull (initializer );
38623863 this .lock = this ;
38633864 this .initializer = initializer ;
38643865 this .value = UNINITIALIZED_VALUE ;
38653866 }
38663867
38673868 private SynchronizedLazy (final Object lock ,
38683869 final ThSupplier <? extends V , ?> initializer ) {
3869- lockArgNotNull (lock );
3870- initializerArgNotNull (initializer );
38713870 this .lock = lock ;
38723871 this .initializer = initializer ;
38733872 this .value = UNINITIALIZED_VALUE ;
0 commit comments