String recoverQueue(String queueName, QueueDeclaration queueDeclaration) throws Exception {
    try {
      String newQueueName =
          ((Queue.DeclareOk) queueDeclaration.invoke(getRecoveryChannel())).getQueue();
      if (queueName.equals(newQueueName))
        log.info("Recovered queue {} via {}", queueName, this);
      else {
        log.info("Recovered queue {} as {} via {}", queueName, newQueueName, this);
        queueDeclaration.name = newQueueName;
      }

      return newQueueName;
    } catch (Exception e) {
      log.error("Failed to recover queue {} via {}", queueName, this, e);
      if (throwOnRecoveryFailure() || Exceptions.isCausedByConnectionClosure(e))
        throw e;
      return queueName;
    }
  }
String recoverQueue ( String queueName , QueueDeclaration queueDeclaration ) throws Exception { try { String newQueueName = ( ( Queue . DeclareOk ) queueDeclaration . invoke ( getRecoveryChannel ( ) ) ) . getQueue ( ) ; if ( queueName . equals ( newQueueName ) ) log . info ( "Recovered queue {} via {}" , queueName , this ) ; else { log . info ( "Recovered queue {} as {} via {}" , queueName , newQueueName , this ) ; queueDeclaration . name = newQueueName ; } return newQueueName ; } catch ( Exception e ) { log . error ( "Failed to recover queue {} via {}" , queueName , this , e ) ; if ( throwOnRecoveryFailure ( ) || Exceptions . isCausedByConnectionClosure ( e ) ) throw e ; return queueName ; } }
Recovers a queue using the {@code channelSupplier}, returning the recovered queue's name.