Sebastian Schuth created SUREFIRE-962:
-----------------------------------------

             Summary: SmartStackTraceParser cannot handle manipulated stack 
traces gracefully
                 Key: SUREFIRE-962
                 URL: https://jira.codehaus.org/browse/SUREFIRE-962
             Project: Maven Surefire
          Issue Type: Bug
         Environment: 2.13, 2.14-SNAPSHOT
            Reporter: Sebastian Schuth


Following setup:

cucumber-jvm runs specs using a JUnit Test case.

In case of an error, surefire seems to try to be smart and parses the stack 
trace cucumber-jvm has, well, somewhat manipulated. 

As far as i can tell, {{SmartStackTraceParser}} is not able to handle 
manipulated stack traces gracefully.


This leads to following maven output:

{code}
[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-surefire-plugin:2.14-SNAPSHOT:test 
(default-test) on project customer: Execution default-test of goal 
org.apache.maven.plugins:maven-surefire-plugin:2.14-SNAPSHOT:test failed: There 
was an error in the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: 
java.lang.RuntimeException: java.lang.ClassNotFoundException: Scenario: 
Destinations get exchanged; nested exception is java.lang.RuntimeException: 
java.lang.ClassNotFoundException: Scenario: Destinations get exchanged
[ERROR] java.lang.RuntimeException: java.lang.ClassNotFoundException: Scenario: 
Destinations get exchanged
[ERROR] at 
org.apache.maven.surefire.report.SmartStackTraceParser.getClass(SmartStackTraceParser.java:67)
[ERROR] at 
org.apache.maven.surefire.report.SmartStackTraceParser.<init>(SmartStackTraceParser.java:53)
[ERROR] at 
org.apache.maven.surefire.common.junit4.JUnit4StackTraceWriter.smartTrimmedStackTrace(JUnit4StackTraceWriter.java:72)
[ERROR] at 
org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:329)
[ERROR] at 
org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:313)
[ERROR] at 
org.apache.maven.surefire.booter.ForkingRunListener.toString(ForkingRunListener.java:259)
[ERROR] at 
org.apache.maven.surefire.booter.ForkingRunListener.testFailed(ForkingRunListener.java:138)
[ERROR] at 
org.apache.maven.surefire.common.junit4.JUnit4RunListener.testFailure(JUnit4RunListener.java:107)
[ERROR] at 
org.junit.runner.notification.RunNotifier$4.notifyListener(RunNotifier.java:139)
[ERROR] at 
org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:61)
[ERROR] at 
org.junit.runner.notification.RunNotifier.fireTestFailures(RunNotifier.java:134)
[ERROR] at 
org.junit.runner.notification.RunNotifier.fireTestFailure(RunNotifier.java:128)
[ERROR] at 
org.junit.internal.runners.model.EachTestNotifier.addFailure(EachTestNotifier.java:23)
[ERROR] at cucumber.runtime.junit.JUnitReporter.result(JUnitReporter.java:83)
[ERROR] at cucumber.runtime.Runtime.runStep(Runtime.java:278)
[ERROR] at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:45)
[ERROR] at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:40)
[ERROR] at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:36)
[ERROR] at 
cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:83)
[ERROR] at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
[ERROR] at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
{code}

Version 2.12.3 can handle the manipulated stack trace.

To be clear: i am not really sure if this is an error within surefire or if 
cucumber-jvm should just keep its hands off the stack trace it produces, but 
the behavior of surefire changed between 2.12 and 2.13, so this may be worth 
fixing.

If you are interested in fixing this, i will happily create a project for 
reproducing the error. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to