in spring-taskqueue/src/main/java/org/apache/archiva/redback/components/taskqueue/execution/ThreadedTaskQueueExecutor.java [294:329]
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();
}
}