tim wu created SUREFIRE-1077:
--------------------------------
Summary: NPE problem will happen if you set testng status to fail
at afterInvocation method
Key: SUREFIRE-1077
URL: https://jira.codehaus.org/browse/SUREFIRE-1077
Project: Maven Surefire
Issue Type: Bug
Components: Maven Surefire Plugin
Affects Versions: 2.17, 2.16, 2.15, 2.14, 2.13
Environment: Maven 3.1.1, TestNG (Try different version), Maven
suirefire plugin 2.11~2.17
Reporter: tim wu
Attachments: target.zip
In our test program, we have some soft assert, which require us set the test
result to false at afterInovcation (IInvokedMethodListener) method, after we
did that, surefire plugin will throw a NPE exception, the stacktrace looks like
this:
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.61 sec <<<
FAILURE!
test1(com.surefire.SimpleTest) Time elapsed: 0.044 sec <<< FAILURE!
java.lang.NullPointerException: null
at
org.apache.maven.surefire.report.SmartStackTraceParser.<init>(SmartStackTraceParser.java:56)
at
org.apache.maven.surefire.report.PojoStackTraceWriter.smartTrimmedStackTrace(PojoStackTraceWriter.java:60)
at
org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:328)
at
org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:312)
at
org.apache.maven.surefire.booter.ForkingRunListener.toString(ForkingRunListener.java:258)
at
org.apache.maven.surefire.booter.ForkingRunListener.testFailed(ForkingRunListener.java:137)
at
org.apache.maven.surefire.testng.TestNGReporter.onTestFailure(TestNGReporter.java:105)
at org.testng.internal.Invoker.runTestListeners(Invoker.java:1895)
at org.testng.internal.Invoker.runTestListeners(Invoker.java:1879)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:778)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
at org.testng.SuiteRunner.run(SuiteRunner.java:254)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:77)
at
org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeSingleClass(TestNGDirectoryTestSuite.java:126)
at
org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:110)
at
org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:158)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:86)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:95)
I will attach a simple project to reproduce this problem.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)