in spring-taskqueue/src/main/java/org/apache/archiva/components/taskqueue/execution/ThreadedTaskQueueExecutor.java [322:357]
public void stop( )
{
executorRunnable.shutdown( );
int maxSleep = 10 * 1000; // 10 seconds
int interval = 1000;
long endTime = System.currentTimeMillis( ) + maxSleep;
while ( !executorRunnable.isDone( ) && executorRunnable.isAlive( ) )
{
if ( System.currentTimeMillis( ) > endTime )
{
logger.warn( "Timeout waiting for executor thread '{}' to stop, aborting", name );
break;
}
logger.info( "Waiting until task executor '{}' is idling...", name );
try
{
synchronized (executorRunnable)
{
executorRunnable.wait( interval );
}
}
catch ( InterruptedException ex )
{
// ignore
}
// notify again, just in case.
executorRunnable.shutdown( );
}
}