code: protected void doExecuteListener(Session session, List<Message> messages) throws JMSException {
          if (!isAcceptMessagesWhileStopping() && !isRunning()) {
              if (logger.isWarnEnabled()) {
                  logger.warn("Rejecting received messages because of the listener container "
                          + "having been stopped in the meantime: " + messages);
              }
              rollbackIfNecessary(session);
              throw new MessageRejectedWhileStoppingException();
          }
  
          try {
              for (Message message : messages) {
                  invokeListener(session, message);
              }
          } catch (JMSException ex) {
              rollbackOnExceptionIfNecessary(session, ex);
              throw ex;
          } catch (RuntimeException ex) {
              rollbackOnExceptionIfNecessary(session, ex);
              throw ex;
          } catch (Error err) {
              rollbackOnExceptionIfNecessary(session, err);
              throw err;
          }
          commitIfNecessary(session, messages);
      }
docs: A batched variant of {@link DefaultMessageListenerContainer#doExecuteListener(Session, Message)}.
  
  @param session The session
  @param messages A list of messages
  @throws JMSException Indicates a problem during processing