docs: @Override
      final public Object getConnection(final Subject requestSubject,
                                        final ConnectionRequestInfo requestInfo) throws ResourceException {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, "getConnection", new Object[] {
                                                                      subjectToString(requestSubject), requestInfo });
          }
  
          // Ensure that the credentials for this request match those passed to
          // the constructor (as we don't support reauthentication)
  
          final JmsJcaUserDetails requestUserDetails = _managedConnectionFactory
                          .getUserDetails(requestSubject, requestInfo);
  
          if (_userDetails != null) {
  
              if (!(_userDetails.equals(requestUserDetails))) {
  
                  throw new ResourceException(NLS.getFormattedMessage(
                                                                      ("AUTHENTICATION_ERROR_CWSJR1103"), new Object[] {
                                                                                                                        "JmsJcaManagedConnection.getConnection",
                                                                                                                        _userDetails.getUserName(),
                                                                                                                        (requestUserDetails == null) ? null
                                                                                                                                        : requestUserDetails.getUserName() },
                                                                      null));
  
              }
  
          } else {
  
              if (!(_subject.equals(requestSubject))) {
  
                  throw new ResourceException(
                                  NLS
                                                  .getFormattedMessage(
                                                                       ("AUTHENTICATION_ERROR_CWSJR1117"),
                                                                       new Object[] { "JmsJcaManagedConnection.getConnection" },
                                                                       null));
              }
  
          }
  
          JmsJcaSessionImpl session = null;
  
          if (requestInfo == null || requestInfo instanceof JmsJcaConnectionRequestInfo) {
              session = new JmsJcaSessionImpl(this, (JmsJcaConnectionRequestInfo) requestInfo);
              _sessions.add(session);
  
          } else {
  
              throw new ResourceAdapterInternalException(NLS.getFormattedMessage(
                                                                                 ("EXCEPTION_RECEIVED_CWSJR1101"), new Object[] {
                                                                                                                                 "getConnection",
                                                                                                                                 JmsJcaConnectionRequestInfo.class.getName(),
                                                                                                                                 requestInfo.getClass().getName() }, null));
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, "getConnection", session);
          }
          return session;
  
      }