code: public static XMLReader createXMLReader() throws SAXException, ParserConfigurationException, FactoryConfigurationError {
          try {
              return (XMLReader) AccessController.doPrivileged(new PrivilegedExceptionAction() {
                  public Object run() throws SAXException, ParserConfigurationException, FactoryConfigurationError {
                      Thread currThread = Thread.currentThread();
                      ClassLoader oldLoader = currThread.getContextClassLoader();
                      currThread.setContextClassLoader(ParserFactory.class.getClassLoader());
                      try {
                          /**
                           * Changed to use pluggable parser version. Needed for JDK 1.4.1
                           */
                          return SAXParserFactory.newInstance().newSAXParser().getXMLReader();
                          //return XMLReaderFactory.createXMLReader();
                      }
                                          finally {
                                              currThread.setContextClassLoader(oldLoader);
                                          }
                                      }
              });
          } catch (PrivilegedActionException pae) {
              Throwable t = pae.getCause();
              if (t instanceof SAXException) {
                  throw (SAXException) t;
              } else if (t instanceof ParserConfigurationException) {
                  throw (ParserConfigurationException) t;
              } else if (t instanceof FactoryConfigurationError) {
                  throw (FactoryConfigurationError) t;
              }
          }
          return null;
      }
docs: /* 170319: Modified parser retrieval.