code: @Override
      public JmsTopic createTopic(String name) throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "createTopic", name);
          JmsTopic topic = null;
  
          // if name string is null throw exception
          if (name == null) {
              throw (InvalidDestinationException) JmsErrorUtils.newThrowable(
                                                                             InvalidDestinationException.class,
                                                                             "INVALID_VALUE_CWSIA0003",
                                                                             new Object[] { "Topic name", null },
                                                                             tc
                              );
          }
  
          // if name is "queue://" throw exception
          if (name != null && name.startsWith(JmsQueueImpl.QUEUE_PREFIX)) {
              throw (InvalidDestinationException) JmsErrorUtils.newThrowable(
                                                                             InvalidDestinationException.class,
                                                                             "MALFORMED_DESCRIPTOR_CWSIA0047",
                                                                             new Object[] { "Topic", name },
                                                                             tc
                              );
          }
  
          name = name.trim();
          topic = (JmsTopic) destCreator.createDestinationFromString(name, URIDestinationCreator.DestType.TOPIC);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "createTopic", topic);
          return topic;
      }
docs: This method is called by the application to create a jms administered
  topic object.