Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ArgumentCaptor: NPE when an null array is passed to a varargs method #583

Closed
ChristianSchwarz opened this issue Aug 23, 2016 · 1 comment · Fixed by #635
Closed

ArgumentCaptor: NPE when an null array is passed to a varargs method #583

ChristianSchwarz opened this issue Aug 23, 2016 · 1 comment · Fixed by #635
Labels
Milestone

Comments

@ChristianSchwarz
Copy link
Contributor

A NullPointerException is thrown if an null array is passed to a varargs method.

@Test
public void shouldCaptureVarArgs_nullArrayArg() {
        String[] argArray = null;
        mock.varargs(argArray);

        verify(mock).varargs(captor.capture()); //<- Kaboom NPE
}

Since an vararg is simply an array the ArgumentCaptor should reject it silently. This relates to #565.

java.lang.NullPointerException
    at java.lang.reflect.Array.getLength(Native Method)
    at org.mockito.internal.invocation.InvocationMatcher.captureVarargsPart(InvocationMatcher.java:142)
    at org.mockito.internal.invocation.InvocationMatcher.captureArgumentsFrom(InvocationMatcher.java:122)
    at org.mockito.internal.invocation.InvocationMarker.markVerified(InvocationMarker.java:24)
    at org.mockito.internal.invocation.InvocationMarker.markVerified(InvocationMarker.java:18)
    at org.mockito.internal.verification.checkers.NumberOfInvocationsChecker.check(NumberOfInvocationsChecker.java:43)
    at org.mockito.internal.verification.Times.verify(Times.java:40)
    at org.mockito.internal.verification.MockAwareVerificationMode.verify(MockAwareVerificationMode.java:21)
    at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:73)
    at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:32)
    at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:37)
    at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:36)
    at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.access$0(MockMethodInterceptor.java:32)
    at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptAbstract(MockMethodInterceptor.java:113)
    at org.mockitousage.IMethods$MockitoMock$81506210.varargs(Unknown Source)
    at org.mockitousage.matchers.VarargsTest.shouldCaptureVarArgs_nullArrayArg(VarargsTest.java:182)
@TimvdLippe
Copy link
Contributor

Probably related to #567

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

3 participants