docs: @Override
      public JMSContext createContext(String userName, String password, int sessionMode) throws JMSRuntimeException, JMSSecurityRuntimeException {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "createContext", new Object[] { userName, password, sessionMode });
  
          JmsConnectionImpl jmsConnection = null;
          JMSContext jmsContext = null;
          try {
  
              //CTS test failure was reported when the session mode was passed as -1,  so adding the validation
              switch (sessionMode)
              {
                  case JMSContext.AUTO_ACKNOWLEDGE:
                  case JMSContext.CLIENT_ACKNOWLEDGE:
                  case JMSContext.DUPS_OK_ACKNOWLEDGE:
                  case JMSContext.SESSION_TRANSACTED: {
                      break;
                  }
                  default:
                      throw (JMSRuntimeException) JmsErrorUtils.newThrowable(JMSRuntimeException.class,
                                                                             "INVALID_ACKNOWLEDGE_MODE_CWSIA0514",
                                                                             new Object[] { sessionMode },
                                                                             tc
                                      );
              }
  
              // Create JMSConnection to pass into JMSContext
              jmsConnection = (JmsConnectionImpl) createConnection(userName, password);
              jmsContext = new JmsJMSContextImpl(jmsConnection, sessionMode, true);
          } catch (JMSSecurityException jmsse) {
              throw (JMSSecurityRuntimeException) JmsErrorUtils.getJMS2Exception(jmsse, JMSSecurityRuntimeException.class);
          } catch (JMSException jmse) {
              throw (JMSRuntimeException) JmsErrorUtils.getJMS2Exception(jmse, JMSRuntimeException.class);
          } finally {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(this, tc, "createContext", jmsContext);
          }
          return jmsContext;
  
      }