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).
---