提交 90b0f29e 编写于 作者: O Olivier Lamy

Merge pull request #639 from vjuranek/surefire_gc

 Allow gc to remove test results from memory in more proper way
......@@ -24,6 +24,7 @@
package hudson.maven.reporters;
import hudson.Extension;
import hudson.Launcher;
import hudson.Util;
import hudson.maven.Maven3Builder;
import hudson.maven.MavenBuild;
......@@ -139,8 +140,6 @@ public class SurefireArchiver extends MavenReporter {
// final reference in order to serialize it:
final TestResult r = result;
//allow gc to free some memory
result = null;
int failCount = build.execute(new BuildCallable<Integer, IOException>() {
private static final long serialVersionUID = -1023888330720922136L;
......@@ -169,6 +168,20 @@ public class SurefireArchiver extends MavenReporter {
return true;
}
@Override
public boolean end(MavenBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
//Discard unneeded test result objects so they can't waste memory
for(MavenReporter reporter: build.getProject().getReporters()) {
if(reporter instanceof SurefireArchiver) {
SurefireArchiver surefireReporter = (SurefireArchiver) reporter;
if(surefireReporter.result != null) {
surefireReporter.result = null;
}
}
}
return true;
}
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification="It's okay to write to static fields here, as each Maven build is started in its own VM")
private void markBuildAsSuccess(Throwable mojoError, MavenBuildInformation buildInfo) {
if(mojoError == null // in the success case we don't get any exception in Maven 3.0.2+; Maven < 3.0.2 returns no exception anyway
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册