Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/816#discussion_r140609179
  
    --- Diff: 
utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java ---
    @@ -183,29 +183,40 @@
                 public T get() {
                     return value.get();
                 }
    -            @Override
    -            public boolean isNull() {
    -                // should always be false as per Optional contract
    -                return get()==null;
    -            }
             };
             return absent();
         }
         
    -    public static <T> Maybe<T> of(final Supplier<T> value) {
    +    @SuppressWarnings("unused")
    +    private static <T> Maybe<T> 
ofOldKeptForDeserializationOfAnonymousInnerClass(final Supplier<T> value) {
             return new AbstractPresent<T>() {
                 private static final long serialVersionUID = 
-5735268814211401356L;
                 @Override
                 public T get() {
                     return value.get();
                 }
    -            @Override
    -            public boolean isNull() {
    -                return get()==null;
    -            }
             };
         }
         
    +    public static <T> Maybe<T> of(final Supplier<T> value) {
    +        return new MaybeSupplier<T>(value);
    +    }
    +    
    +    public static class MaybeSupplier<T> extends AbstractPresent<T> {
    +        private static final long serialVersionUID = -823731500051341455L;
    +        private Supplier<T> supplier;
    --- End diff --
    
    Make this final, because it can (and because it helps with java memory 
model guarantees).


---

Reply via email to