pierred     00/12/08 12:45:19

  Modified:    jasper/src/share/org/apache/jasper/compiler
                        JspParseEventListener.java TagLibraryInfoImpl.java
                        XmlOutputter.java
  Log:
  Misc bug fixes for XML syntax processing.
  
  Revision  Changes    Path
  1.16      +9 -6      
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java
  
  Index: JspParseEventListener.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- JspParseEventListener.java        2000/12/05 12:23:46     1.15
  +++ JspParseEventListener.java        2000/12/08 20:45:09     1.16
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.15 2000/12/05 12:23:46 pierred Exp $
  - * $Revision: 1.15 $
  - * $Date: 2000/12/05 12:23:46 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspParseEventListener.java,v
 1.16 2000/12/08 20:45:09 pierred Exp $
  + * $Revision: 1.16 $
  + * $Date: 2000/12/08 20:45:09 $
    *
    * ====================================================================
    *
  @@ -777,7 +777,9 @@
                                           ex.getMessage());
            }
        }
  -     xo.append("jsp:directive." + directive, attrs);
  +     if (!directive.equals("include")) {
  +         xo.append("jsp:directive." + directive, attrs);
  +     }
       }
   
   
  @@ -988,7 +990,6 @@
                                      start, stop);
   
        addGenerator(gen);
  -        xo.append(chars);
       }
   
       public void handleTagBegin(Mark start, Mark stop, 
  @@ -1034,7 +1035,7 @@
       }
   
       public void handleRootEnd() {
  -     xo.append("jsp:root");
  +     xo.rootEnd();
       }
       
       public void handleRootBegin(Attributes attrs) 
  @@ -1076,6 +1077,7 @@
       {
        if (data != null) {
            handleCharData(start, stop, data);
  +            xo.append(data);
        }
           UninterpretedTagEndGenerator gen = 
            new UninterpretedTagEndGenerator(rawName);
  @@ -1088,6 +1090,7 @@
        throws JasperException
       {
        handleCharData(start, stop, data);
  +        xo.append("jsp:cdata", null, data);
       }
   
       /**
  
  
  
  1.16      +7 -9      
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java
  
  Index: TagLibraryInfoImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- TagLibraryInfoImpl.java   2000/11/18 22:36:48     1.15
  +++ TagLibraryInfoImpl.java   2000/12/08 20:45:12     1.16
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
 1.15 2000/11/18 22:36:48 pierred Exp $
  - * $Revision: 1.15 $
  - * $Date: 2000/11/18 22:36:48 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v
 1.16 2000/12/08 20:45:12 pierred Exp $
  + * $Revision: 1.16 $
  + * $Date: 2000/12/08 20:45:12 $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -180,8 +180,6 @@
           URL url = null;
           boolean relativeURL = false;
   
  -     //p("prefix: " + prefix + "  uriIn: " + uriIn);
  -     //if (location != null) p("location: " + location[0]);
        if (location == null) {
            // The URI points to the TLD itself or to a jar
            // file where the TLD is located
  @@ -215,23 +213,19 @@
            parseTLD(location[0], in);
        } else {
            // Location points to a jar file
  -         // p("JAR FILE: " + location[0]);
            // tag library in jar file
            JarFile jarFile = null;
            ZipEntry jarEntry = null;
            InputStream stream = null;
            try {
                url = ctxt.getResource(location[0]);
  -             // p("url = " + url);
                if (url == null) return;
                url = new URL("jar:" + url.toString() + "!/");
                JarURLConnection conn =
                    (JarURLConnection) url.openConnection();
                conn.connect(); //@@@ necessary???
                jarFile = conn.getJarFile();
  -             // p("jarFile: " + jarFile);
                jarEntry = jarFile.getEntry(location[1]);
  -             // p("jarEntry name: " + jarEntry.getName());
                stream = jarFile.getInputStream(jarEntry);
                parseTLD(location[0], stream);
                // FIXME @@@
  @@ -240,6 +234,10 @@
                // it to release the cached entry, so
                // there's no way to redeploy from the same JAR file.  Wierd.
            } catch (Exception ex) {
  +             Constants.message(
  +                    "jsp.error.taglib.jarFileException",
  +                 new Object[] {url.toString(), ex.getMessage()},
  +                 Logger.ERROR);
                if (stream != null) {
                    try {
                        stream.close();
  
  
  
  1.5       +24 -3     
jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java
  
  Index: XmlOutputter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XmlOutputter.java 2000/10/27 21:23:35     1.4
  +++ XmlOutputter.java 2000/12/08 20:45:13     1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
 1.4 2000/10/27 21:23:35 pierred Exp $
  - * $Revision: 1.4 $
  - * $Date: 2000/10/27 21:23:35 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/XmlOutputter.java,v
 1.5 2000/12/08 20:45:13 pierred Exp $
  + * $Revision: 1.5 $
  + * $Date: 2000/12/08 20:45:13 $
    *
    * ====================================================================
    *
  @@ -92,6 +92,12 @@
        */
       private AttributesImpl rootAttrs;
       
  +    /*
  +     * Tells the nesting level of <jsp:root> tags encountered
  +     * in the translation unit.
  +     */
  +    private int jspRootLevel = 0;
  +
       //*********************************************************************
       // Constructor
   
  @@ -110,11 +116,26 @@
        * <jsp:root> tag.
        */
       void addRootAttrs(Attributes attrs) {
  +     jspRootLevel++;
           int attrsLength = attrs.getLength();
           for (int i = 0; i < attrsLength; i++) {
  +         String qName = attrs.getQName(i);
  +         if (attrs.getQName(i).startsWith("xmlns:jsp") 
  +             && jspRootLevel > 1) continue; 
               rootAttrs.addAttribute(attrs.getURI(i), attrs.getLocalName(i),
                   attrs.getQName(i), attrs.getType(i), attrs.getValue(i));
           }
  +    }
  +
  +    /*
  +     * Only put the </jsp:root> tag when we're dealing
  +     * with the top level 'container' page.
  +     */
  +    void rootEnd() {
  +     jspRootLevel--;
  +     if (jspRootLevel == 0) {
  +         append("jsp:root");
  +     }
       }
       
       /**
  
  
  

Reply via email to