code: private String recoverQueue(String queueName, QueueDeclaration queueDeclaration,
      List<Binding> queueBindings) throws Exception {
      String newQueueName = queueName;
  
      if (config.isQueueRecoveryEnabled()) {
        if (queueDeclaration != null) {
          newQueueName = recoverQueue(queueName, queueDeclaration);
  
          // Update dependencies for new queue names
          if (!queueName.equals(newQueueName)) {
            connectionHandler.queueDeclarations.remove(queueName);
            connectionHandler.queueDeclarations.put(newQueueName, queueDeclaration);
            connectionHandler.updateQueueBindingReferences(queueName, newQueueName);
          }
        }
  
        recoverQueueBindings(queueBindings);
      }
  
      return newQueueName;
    }
docs: Recovers the {@code queueName} along with its {@code queueBindings}.