bundles/org.apache.jasper.glassfish/src/org/apache/jasper/compiler/JspDocumentParser.java
public static Node.Nodes parse(
        ParserController pc,
        String path,
        JarFile jarFile,
        Node parent,
        boolean isTagFile,
        boolean directivesOnly,
        String pageEnc,
        String jspConfigPageEnc,
        boolean isEncodingSpecifiedInProlog)
        throws JasperException {

        JspDocumentParser jspDocParser =
            new JspDocumentParser(pc, path, isTagFile, directivesOnly);
        Node.Nodes pageNodes = null;

        try {

            // Create dummy root and initialize it with given page encodings
            Node.Root dummyRoot = new Node.Root(null, parent, true);
            dummyRoot.setPageEncoding(pageEnc);
            dummyRoot.setJspConfigPageEncoding(jspConfigPageEnc);
            dummyRoot.setIsEncodingSpecifiedInProlog(
                isEncodingSpecifiedInProlog);
            jspDocParser.current = dummyRoot;
            if (parent == null) {
                jspDocParser.addInclude(
                    dummyRoot,
                    jspDocParser.pageInfo.getIncludePrelude());
            } else {
                jspDocParser.isTop = false;
            }

            // Parse the input
            SAXParser saxParser = getSAXParser(false, jspDocParser);
            InputStream inStream = null;
            try {
                inStream = JspUtil.getInputStream(path, jarFile,
                                                  jspDocParser.ctxt,
                                                  jspDocParser.err);
                saxParser.parse(new InputSource(inStream), jspDocParser);
            } catch (EnableDTDValidationException e) {
                saxParser = getSAXParser(true, jspDocParser);
                jspDocParser.isValidating = true;
                if (inStream != null) {
                    try {
                        inStream.close();
                    } catch (Exception any) {
                    }
                }
                inStream = JspUtil.getInputStream(path, jarFile,
                                                  jspDocParser.ctxt,
                                                  jspDocParser.err);
                saxParser.parse(new InputSource(inStream), jspDocParser);
            } finally {
                if (inStream != null) {
                    try {
                        inStream.close();
                    } catch (Exception any) {
                    }
                }
            }

            if (parent == null) {
                jspDocParser.addInclude(
                    dummyRoot,
                    jspDocParser.pageInfo.getIncludeCoda());
                jspDocParser.pageInfo.setRootPath(path);
            }

            // Create Node.Nodes from dummy root
            pageNodes = new Node.Nodes(dummyRoot);

        } catch (IOException ioe) {
            jspDocParser.err.jspError("jsp.error.data.file.read", path, ioe);
        } catch (SAXParseException e) {
            jspDocParser.err.jspError
                (new Mark(jspDocParser.ctxt, path, e.getLineNumber(),
                          e.getColumnNumber()),
                 e.getMessage());
        } catch (Exception e) {
            jspDocParser.err.jspError(e);
        }

        return pageNodes;
    }
public static Node.Nodes parse(
        ParserController pc,
        String path,
        JarFile jarFile,
        Node parent,
        boolean isTagFile,
        boolean directivesOnly,
        String pageEnc,
        String jspConfigPageEnc,
        boolean isEncodingSpecifiedInProlog)
        throws JasperException {

        JspDocumentParser jspDocParser =
            new JspDocumentParser(pc, path, isTagFile, directivesOnly);
        Node.Nodes pageNodes = null;

        try {

            // Create dummy root and initialize it with given page encodings
            Node.Root dummyRoot = new Node.Root(null, parent, true);
            dummyRoot.setPageEncoding(pageEnc);
            dummyRoot.setJspConfigPageEncoding(jspConfigPageEnc);
            dummyRoot.setIsEncodingSpecifiedInProlog(
                isEncodingSpecifiedInProlog);
            jspDocParser.current = dummyRoot;
            if (parent == null) {
                jspDocParser.addInclude(
                    dummyRoot,
                    jspDocParser.pageInfo.getIncludePrelude());
            } else {
                jspDocParser.isTop = false;
            }

            // Parse the input
            SAXParser saxParser = getSAXParser(false, jspDocParser);
            InputStream inStream = null;
            try {
                inStream = JspUtil.getInputStream(path, jarFile,
                                                  jspDocParser.ctxt,
                                                  jspDocParser.err);
                saxParser.parse(new InputSource(inStream), jspDocParser);
            } catch (EnableDTDValidationException e) {
                saxParser = getSAXParser(true, jspDocParser);
                jspDocParser.isValidating = true;
                if (inStream != null) {
                    try {
                        inStream.close();
                    } catch (Exception any) {
                    }
                }
                inStream = JspUtil.getInputStream(path, jarFile,
                                                  jspDocParser.ctxt,
                                                  jspDocParser.err);
                saxParser.parse(new InputSource(inStream), jspDocParser);
            } finally {
                if (inStream != null) {
                    try {
                        inStream.close();
                    } catch (Exception any) {
                    }
                }
            }

            if (parent == null) {
                jspDocParser.addInclude(
                    dummyRoot,
                    jspDocParser.pageInfo.getIncludeCoda());
                jspDocParser.pageInfo.setRootPath(path);
            }

            // Create Node.Nodes from dummy root
            pageNodes = new Node.Nodes(dummyRoot);

        } catch (IOException ioe) {
            jspDocParser.err.jspError("jsp.error.data.file.read", path, ioe);
        } catch (SAXParseException e) {
            jspDocParser.err.jspError
                (new Mark(jspDocParser.ctxt, path, e.getLineNumber(),
                          e.getColumnNumber()),
                 e.getMessage());
        } catch (Exception e) {
            jspDocParser.err.jspError(e);
        }

        return pageNodes;
    }
public static Node . Nodes parse ( ParserController pc , String path , JarFile jarFile , Node parent , boolean isTagFile , boolean directivesOnly , String pageEnc , String jspConfigPageEnc , boolean isEncodingSpecifiedInProlog ) throws JasperException { JspDocumentParser jspDocParser = new JspDocumentParser ( pc , path , isTagFile , directivesOnly ) ; Node . Nodes pageNodes = null ; try { // Create dummy root and initialize it with given page encodings Node . Root dummyRoot = new Node . Root ( null , parent , true ) ; dummyRoot . setPageEncoding ( pageEnc ) ; dummyRoot . setJspConfigPageEncoding ( jspConfigPageEnc ) ; dummyRoot . setIsEncodingSpecifiedInProlog ( isEncodingSpecifiedInProlog ) ; jspDocParser . current = dummyRoot ; if ( parent == null ) { jspDocParser . addInclude ( dummyRoot , jspDocParser . pageInfo . getIncludePrelude ( ) ) ; } else { jspDocParser . isTop = false ; } // Parse the input SAXParser saxParser = getSAXParser ( false , jspDocParser ) ; InputStream inStream = null ; try { inStream = JspUtil . getInputStream ( path , jarFile , jspDocParser . ctxt , jspDocParser . err ) ; saxParser . parse ( new InputSource ( inStream ) , jspDocParser ) ; } catch ( EnableDTDValidationException e ) { saxParser = getSAXParser ( true , jspDocParser ) ; jspDocParser . isValidating = true ; if ( inStream != null ) { try { inStream . close ( ) ; } catch ( Exception any ) { } } inStream = JspUtil . getInputStream ( path , jarFile , jspDocParser . ctxt , jspDocParser . err ) ; saxParser . parse ( new InputSource ( inStream ) , jspDocParser ) ; } finally { if ( inStream != null ) { try { inStream . close ( ) ; } catch ( Exception any ) { } } } if ( parent == null ) { jspDocParser . addInclude ( dummyRoot , jspDocParser . pageInfo . getIncludeCoda ( ) ) ; jspDocParser . pageInfo . setRootPath ( path ) ; } // Create Node.Nodes from dummy root pageNodes = new Node . Nodes ( dummyRoot ) ; } catch ( IOException ioe ) { jspDocParser . err . jspError ( "jsp.error.data.file.read" , path , ioe ) ; } catch ( SAXParseException e ) { jspDocParser . err . jspError ( new Mark ( jspDocParser . ctxt , path , e . getLineNumber ( ) , e . getColumnNumber ( ) ) , e . getMessage ( ) ) ; } catch ( Exception e ) { jspDocParser . err . jspError ( e ) ; } return pageNodes ; }
/*
Parses a JSP document by responding to SAX events.

@throws JasperException
/ * Parses a JSP document by responding to SAX events .