docs: @Override
      public JMSConsumer createDurableConsumer(Topic topic, String name) throws InvalidDestinationRuntimeException, IllegalStateRuntimeException, JMSRuntimeException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "createDurableConsumer", new Object[] { topic, name });
  
          JMSConsumer jmsConsumer = null;
  
          try {
              MessageConsumer messageConsumer = jmsSession.createDurableConsumer(topic, name);
              jmsConsumer = new JmsJMSConsumerImpl(messageConsumer);
              autoStartConsumer();
          } catch (InvalidDestinationException ide) {
              throw (InvalidDestinationRuntimeException) JmsErrorUtils.getJMS2Exception(ide, InvalidDestinationRuntimeException.class);
          } catch (IllegalStateException ise) {
              throw (IllegalStateRuntimeException) JmsErrorUtils.getJMS2Exception(ise, IllegalStateRuntimeException.class);
          } catch (JMSException jmse) {
              throw (JMSRuntimeException) JmsErrorUtils.getJMS2Exception(jmse, JMSRuntimeException.class);
          } finally {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(this, tc, "createDurableConsumer", new Object[] { jmsConsumer });
          }
  
          return jmsConsumer;
  
      }