code: void sessionError(final SibRaMessagingEngineConnection connection,
              final ConsumerSession session, final Throwable throwable) {
  
          final String methodName = "sessionError";
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, methodName, new Object[] { connection,
                      session });
          }
  
          final SIDestinationAddress destination = session
                  .getDestinationAddress();
  
          if (_remoteDestination) {
  
              /*
               * Output a message to the admin console and attempt to create a new
               * listener
               */
  
              SibTr.warning(TRACE, "CONSUMER_FAILED_CWSIV0770", new Object[] {
                      destination.getDestinationName(),
                      _endpointConfiguration.getBusName(), this, throwable });
  
              try {
  
                  createListener(connection);
  
              } catch (final ResourceException exception) {
  
                  // No FFDC code needed
  
              }
  
          } else {
  
              if (SibRaEngineComponent.isMessagingEngineReloading(connection
                      .getConnection().getMeUuid())) {
  
                  /*
                   * Output a warning to the admin console and close the
                   * connection - will be recreated during engineReloaded if
                   * required
                   */
  
                  SibTr.warning(TRACE, "FAILURE_DURING_RELOAD_CWSIV0774",
                          new Object[] { throwable,
                                  destination.getDestinationName(),
                                  connection.getConnection().getMeName(),
                                  destination.getBusName(), this });
  
                  closeConnection(connection.getConnection().getMeUuid());
  
              } else {
  
                  /*
                   * Output a message to the admin console and deactivate the
                   * endpoint
                   */
  
                  SibTr.error(TRACE, "SESSION_ERROR_CWSIV0766", new Object[] {
                          throwable, destination.getDestinationName(),
                          connection.getConnection().getMeName(),
                          destination.getBusName(), this });
  
                  deactivate();
  
              }
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, methodName);
          }
  
      }
docs: Indicates that an error has been detected on the given session.
  
  @param connection
  the parent connection for the session
  @param session
  the session
  @param throwable
  the error