Make sure participants and session scope exit are called

Even in case of failing build.

Signed-off-by: Jason van Zyl <jason@tesla.io>
This commit is contained in:
Tamas Cservenak 2014-05-30 15:26:54 +02:00 committed by Jason van Zyl
parent 73d35ba959
commit 18964baa25
1 changed files with 31 additions and 33 deletions

View File

@ -336,47 +336,45 @@ private MavenExecutionResult doExecute( MavenExecutionRequest request )
// //
projectDependencyGraph = createProjectDependencyGraph( session.getProjects(), request, result, false ); projectDependencyGraph = createProjectDependencyGraph( session.getProjects(), request, result, false );
if ( result.hasExceptions() ) try
{ {
try if ( result.hasExceptions() )
{
return result;
}
session.setProjects( projectDependencyGraph.getSortedProjects() );
session.setProjectDependencyGraph( projectDependencyGraph );
result.setTopologicallySortedProjects( session.getProjects() );
result.setProject( session.getTopLevelProject() );
lifecycleStarter.execute( session );
validateActivatedProfiles( session.getProjects(), request.getActiveProfiles() );
if ( session.getResult().hasExceptions() )
{
return addExceptionToResult( result, session.getResult().getExceptions().get( 0 ) );
}
}
finally
{
try
{ {
afterSessionEnd( projects, session ); afterSessionEnd( projects, session );
} }
catch ( MavenExecutionException e ) catch ( MavenExecutionException e )
{ {
return addExceptionToResult( result, e ); return addExceptionToResult( result, e );
} }
finally
return result; {
sessionScope.exit();
}
} }
session.setProjects( projectDependencyGraph.getSortedProjects() );
session.setProjectDependencyGraph( projectDependencyGraph );
result.setTopologicallySortedProjects( session.getProjects() );
result.setProject( session.getTopLevelProject() );
lifecycleStarter.execute( session );
validateActivatedProfiles( session.getProjects(), request.getActiveProfiles() );
if ( session.getResult().hasExceptions() )
{
return addExceptionToResult( result, session.getResult().getExceptions().get( 0 ) );
}
try
{
afterSessionEnd( projects, session );
}
catch ( MavenExecutionException e )
{
return addExceptionToResult( result, e );
}
sessionScope.exit();
return result; return result;
} }