in src/main/java/com/amazonaws/services/sqs/AmazonSQSIdleQueueDeletingClient.java [305:335]
private String recreateQueue(String queueUrl) {
// TODO-RS: CW metrics
QueueMetadata queue = queues.get(queueUrl);
if (queue != null) {
LOG.warn("Queue " + queueUrl + " was deleted while it was still in use! Attempting to recreate...");
try {
createQueue(new CreateQueueRequest().withQueueName(queue.name)
.withAttributes(queue.attributes));
LOG.info("Queue " + queueUrl + " successfully recreated.");
return queueUrl;
} catch (QueueDeletedRecentlyException e) {
// Ignore, will retry later
LOG.warn("Queue " + queueUrl + " was recently deleted, cannot create it yet.");
}
}
String alternateQueueUrl = alternateQueueName(queueUrl);
QueueMetadata metadata = queues.get(alternateQueueUrl);
if (metadata == null && queue != null) {
LOG.info("Attempting to create failover queue: " + alternateQueueUrl);
try {
createQueue(new CreateQueueRequest().withQueueName(alternateQueueName(queue.name))
.withAttributes(queue.attributes));
LOG.info("Failover queue " + alternateQueueUrl + " successfully created.");
} catch (QueueDeletedRecentlyException e) {
// Ignore, will retry later
LOG.warn("Failover queue " + alternateQueueUrl + " was recently deleted, cannot create it yet.");
}
}
return alternateQueueUrl;
}