diff --git a/src/main/java/rx/internal/operators/OperatorFinally.java b/src/main/java/rx/internal/operators/OperatorFinally.java index 64ee03d4a4..5f870f8f37 100644 --- a/src/main/java/rx/internal/operators/OperatorFinally.java +++ b/src/main/java/rx/internal/operators/OperatorFinally.java @@ -33,6 +33,9 @@ public final class OperatorFinally implements Operator { final Action0 action; public OperatorFinally(Action0 action) { + if (action == null) { + throw new NullPointerException("Action can not be null"); + } this.action = action; } diff --git a/src/test/java/rx/internal/operators/OperatorFinallyTest.java b/src/test/java/rx/internal/operators/OperatorFinallyTest.java index 5403e7ebe6..e89ee74468 100644 --- a/src/test/java/rx/internal/operators/OperatorFinallyTest.java +++ b/src/test/java/rx/internal/operators/OperatorFinallyTest.java @@ -15,6 +15,8 @@ */ package rx.internal.operators; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -53,4 +55,14 @@ public void testFinallyCalledOnComplete() { public void testFinallyCalledOnError() { checkActionCalled(Observable. error(new RuntimeException("expected"))); } + + @Test + public void nullActionShouldBeCheckedInConstructor() { + try { + new OperatorFinally(null); + fail(); + } catch (NullPointerException expected) { + assertEquals("Action can not be null", expected.getMessage()); + } + } }