try {
toReturn = future.get();
} catch ( InterruptedException ie ) {
Thread.currentThread().interrupt();
AmazonClientException ce = new AmazonClientException("Thread interrupted while waiting for execution result");
ce.initCause(ie);
throw ce;
} catch (ExecutionException ee ) {
//if the cause of the execution exception is an SQS exception, extract it
//and throw the extracted exception to the clients
//otherwise, wrap ee in an SQS exception and throw that.