code: @SuppressWarnings("resource")
      private XMLStreamReader2 doCreateSR(ReaderConfig cfg, SystemId systemId,
      		InputBootstrapper bs,  boolean forER, boolean autoCloseInput)
          throws XMLStreamException
      {
          /* Automatic closing of input: will happen always for some input
           * types (ones application has no direct access to; but can also
           * be explicitly enabled.
           */
          if (!autoCloseInput) {
              autoCloseInput = cfg.willAutoCloseInput();
          }
  
          Reader r;
          try {
              r = bs.bootstrapInput(cfg, true, XmlConsts.XML_V_UNKNOWN);
              if (bs.declaredXml11()) {
                  cfg.enableXml11(true);
              }
          } catch (IOException ie) {
              throw new WstxIOException(ie);
          }
  
          /* null -> no public id available
           * false -> don't close the reader when scope is closed.
           */
          BranchingReaderSource input = InputSourceFactory.constructDocumentSource
              (cfg, bs, null, systemId, r, autoCloseInput);
  
          return ValidatingStreamReader.createValidatingStreamReader(input, this, cfg, bs, forER);
      }
docs: Bottleneck method used for creating ALL full stream reader instances
  (via other createSR() methods and directly)
  
  @param forER True, if the reader is being constructed to be used
  by an event reader; false if it is not (or the purpose is not known)
  @param autoCloseInput Whether the underlying input source should be
  actually closed when encountering EOF, or when <code>close()</code>
  is called. Will be true for input sources that are automatically
  managed by stream reader (input streams created for
  {@link java.net.URL} and {@link java.io.File} arguments, or when
  configuration settings indicate auto-closing is to be enabled
  (the default value is false as per Stax 1.0 specs).