david-schuler/javalanche — Issue #3: java.lang.ThreadDeath when running the scan target
Author: linozem
Created: 2012-02-27 02:47:07+00:00
State: open

I've been trying to get Javalanche to work with jfreechart. The test tasks work fine, as do the targets schemaexport and scanProject. When I run the scan target, it works for a bit but then crashes with a ThreadDeath error.

[junit] Hibernate:
[junit] /* insert de.unisb.cs.st.javalanche.mutation.results.Mutation
[junit] */ insert
[junit] into
[junit] Mutation
[junit] (addInfo, baseMutationId, className, lineNumber, methodName, mutationForLine, mutationResult_id, mutationType, operatorAddInfo)
[junit] values
[junit] (?, ?, ?, ?, ?, ?, ?, ?, ?)
[junit] java.lang.ThreadDeath
[junit]	at java.lang.Thread.stop(Thread.java:758)
[junit]	at de.unisb.cs.st.javalanche.mutation.runtime.testDriver.MutationTestDriver.stopThreads(MutationTestDriver.java:831)
[junit]	at de.unisb.cs.st.javalanche.mutation.runtime.testDriver.MutationTestDriver.runWithTimeout(MutationTestDriver.java:784)
[junit]	at de.unisb.cs.st.javalanche.mutation.runtime.testDriver.MutationTestDriver.coldRun(MutationTestDriver.java:426)
[junit]	at de.unisb.cs.st.javalanche.mutation.runtime.testDriver.MutationTestDriver.scanTests(MutationTestDriver.java:376)
[junit]	at de.unisb.cs.st.javalanche.mutation.runtime.testDriver.MutationTestDriver.run(MutationTestDriver.java:220)
[junit]	at de.unisb.cs.st.javalanche.mutation.runtime.testDriver.junit.JavalancheWrapperTestSuite.run(JavalancheWrapperTestSuite.java:94)
[junit]	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
[junit]	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
[junit]	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
[junit]	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)
[junit] Hibernate:
[junit] /*
[junit] from
[junit] Mutation as m
[junit] where
[junit] m.className=:name
[junit] and m.lineNumber=:number
[junit] and m.mutationForLine=:mforl
[junit] and m.mutationType=:type
[junit] and m.operatorAddInfo=:add */ select
[junit] mutation0_.id as id0_,
[junit] mutation0_.addInfo as addInfo0_,
[junit] mutation0_.baseMutationId as baseMuta3_0_,
[junit] mutation0_.className as className0_,
[junit] mutation0_.lineNumber as lineNumber0_,
[junit] mutation0_.methodName as methodName0_,
[junit] mutation0_.mutationForLine as mutation7_0_,
[junit] mutation0_.mutationResult_id as mutatio10_0_,
[junit] mutation0_.mutationType as mutation8_0_,
[junit] mutation0_.operatorAddInfo as operator9_0_
[junit] from
[junit] Mutation mutation0_
[junit] where
[junit] mutation0_.className=?
[junit] and mutation0_.lineNumber=?
[junit] and mutation0_.mutationForLine=?
[junit] and mutation0_.mutationType=?
[junit] and mutation0_.operatorAddInfo=?
[junit] Hibernate:
[junit] /* insert de.unisb.cs.st.javalanche.mutation.results.Mutation
[junit] */ insert
[junit] into
[junit] Mutation
[junit] (addInfo, baseMutationId, className, lineNumber, methodName, mutationForLine, mutationResult_id, mutationType, operatorAddInfo)
[junit] values
[junit] (?, ?, ?, ?, ?, ?, ?, ?, ?)
[junit] Hibernate:
[junit] /*
[junit] from
[junit] Mutation as m
[junit] where
[junit] m.className=:name
[junit] and m.lineNumber=:number
[junit] and m.mutationForLine=:mforl
[junit] and m.mutationType=:type
[junit] and m.operatorAddInfo=:add */ select
[junit] mutation0_.id as id0_,
[junit] mutation0_.addInfo as addInfo0_,
[junit] mutation0_.baseMutationId as baseMuta3_0_,
[junit] mutation0_.className as className0_,
[junit] mutation0_.lineNumber as lineNumber0_,
[junit] mutation0_.methodName as methodName0_,
[junit] mutation0_.mutationForLine as mutation7_0_,
[junit] mutation0_.mutationResult_id as mutatio10_0_,
[junit] mutation0_.mutationType as mutation8_0_,
[junit] mutation0_.operatorAddInfo as operator9_0_
[junit] from
[junit] Mutation mutation0_
[junit] where
[junit] mutation0_.className=?
[junit] and mutation0_.lineNumber=?
[junit] and mutation0_.mutationForLine=?
[junit] and mutation0_.mutationType=?
[junit] and mutation0_.operatorAddInfo=?
[junit] Exception during instrumentation - exiting
[junit] Test de.unisb.cs.st.javalanche.mutation.runtime.testDriver.junit.JavalancheWrapperTestSuite FAILED (crashed)

My Javalanche install is from commit 2fa6e1a48ad84777d352554a1587c2e08dc16557. I did make two changes: the default database setup wouldn't work for me, so I replaced hsql with MySQL and c3p0 with BoneCP. I don't think this is related to the thread death error, however, because scan doesn't crash immediately -- the Mutation table had 27247 entries when it did.