private void recordMojoEnded(ExecutionEvent event, Exception problem) { MavenProject mavenProject = event.getProject(); MojoInfo mojoInfo = new MojoInfo(event,getMojoStartTime(event.getProject())); recordExecutionTime(event,mojoInfo); List<MavenReporter> mavenReporters = getMavenReporters( mavenProject ); MavenBuildProxy2 mavenBuildProxy2 = getMavenBuildProxy2( mavenProject ); if (mavenBuildProxy2 == null) return; mavenBuildProxy2.setExecutedMojos( this.executedMojosPerModule.get( new ModuleName(event) ) ); for (MavenReporter mavenReporter : fixNull(mavenReporters)) { try { mavenReporter.postExecute( mavenBuildProxy2, mavenProject, mojoInfo, maven3Builder.listener, problem); if (mavenReporter instanceof TestFailureDetector) { if(((TestFailureDetector) mavenReporter).hasTestFailures()) { hasTestFailures.compareAndSet(false, true); } } } catch ( InterruptedException e ) { e.printStackTrace(); } catch ( IOException e ) { mavenBuildProxy2.setResult(Result.FAILURE); e.printStackTrace(); } } }