The ObjectRegistration interface was recently changed to annotate
getInstance with @Nonnull to promise it will not return a null.
However DelayedListenerRegistration could return null if the delegate
is not set yet. In reality, we do not and should not ever call this
method on DelayedListenerRegistration instances so I changed it to
throw UnsupportedOperationException to make it explicit and to avoid
the FindBugs error.
Change-Id: I9fe374b23336d8ade65b2f1b697d93f50a090df9
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
@Override
public L getInstance() {
- final ListenerRegistration<L> d = delegate;
- return d == null ? null : (L)d.getInstance();
+ // ObjectRegistration annotates this method as @Nonnull but we could return null if the delegate is not set yet.
+ // In reality, we do not and should not ever call this method on DelayedListenerRegistration instances anyway
+ // but, since we have to provide an implementation to satisfy the interface, we throw
+ // UnsupportedOperationException to honor the API contract of not returning null and to avoid a FindBugs error
+ // for possibly returning null.
+ throw new UnsupportedOperationException(
+ "getInstance should not be called on this instance since it could be null");
}
@Override