}
if (!_shutdownRequest)
{
LOG.error("timeout waiting for a shutdown request");
throw new TimeoutException("timeout waiting for shutdown request");
}
_controlLock.lock();
try
{
long waitTime;
while (!_shutdown && (waitTime = endTs - System.currentTimeMillis()) > 0)
{
LOG.info("Waiting for shutdown complete for serving container: " + _containerStaticConfig.getId());
if (!_shutdownFinishedCondition.await(waitTime, TimeUnit.MILLISECONDS)) break;
}
}
finally
{
_controlLock.unlock();
}
if (!_shutdown)
{
LOG.error("timeout waiting for shutdown");
throw new TimeoutException("timeout waiting for shutdown to complete");
}
}