luehe       2002/11/07 14:19:13

  Modified:    jasper2/src/share/org/apache/jasper/compiler PageInfo.java
                        ParserController.java Validator.java
               jasper2/src/share/org/apache/jasper/resources
                        messages.properties messages_es.properties
                        messages_fr.properties messages_ja.properties
  Log:
  Report translation-time error if different page character encodings
  are detected in two or more of the following: the XML prolog of a JSP
  page, the pageEncoding attribute of the page directive of the JSP
  page, and in a JSP configuration element (whose URL pattern matches
  the page).
  
  Revision  Changes    Path
  1.15      +8 -19     
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java
  
  Index: PageInfo.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- PageInfo.java     6 Nov 2002 20:14:19 -0000       1.14
  +++ PageInfo.java     7 Nov 2002 22:19:13 -0000       1.15
  @@ -94,10 +94,7 @@
        * (declaration).
        * Only meaningful for XML documents.
        */
  -    private String xmlEncoding = null;
  -
  -    // Indicates whether page has XML declaration with encoding attribute
  -    private boolean hasEncodingProlog = false;
  +    private String xmlPrologEncoding = null;
   
       private int maxTagNesting = 0;
       private boolean scriptless = false;
  @@ -235,22 +232,14 @@
        return pageEncoding;
       }
   
  -    public void setXmlEncoding(String xmlEncoding) {
  -     this.xmlEncoding = xmlEncoding;
  +    public void setXmlPrologEncoding(String xmlPrologEncoding) {
  +     this.xmlPrologEncoding = xmlPrologEncoding;
       }
   
  -    public String getXmlEncoding() {
  -     return xmlEncoding;
  +    public String getXmlPrologEncoding() {
  +     return xmlPrologEncoding;
       }
       
  -    public void setHasEncodingProlog(boolean hasEncodingProlog) {
  -     this.hasEncodingProlog = hasEncodingProlog;
  -    }
  -
  -    public boolean hasEncodingProlog() {
  -     return hasEncodingProlog;
  -    }
  -
       public int getMaxTagNesting() {
           return maxTagNesting;
       }
  
  
  
  1.26      +10 -6     
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java
  
  Index: ParserController.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ParserController.java     7 Nov 2002 00:50:52 -0000       1.25
  +++ ParserController.java     7 Nov 2002 22:19:13 -0000       1.26
  @@ -192,9 +192,6 @@
   
            if (isTopFile) {
                pageInfo.setIsXml(isXml);
  -             if (isXml) {
  -                 pageInfo.setXmlEncoding(encoding);
  -             }
                isTopFile = false;
            } else {
                compiler.getPageInfo().addDependant(absFileName);
  @@ -274,12 +271,19 @@
                                                           ctxt, err);
            sourceEnc = (String) ret[0];
            boolean isEncodingSetInProlog = ((Boolean) ret[1]).booleanValue();
  -         if (isTopFile) {
  -             pageInfo.setHasEncodingProlog(isEncodingSetInProlog);
  -         }
            if (isEncodingSetInProlog) {
                // Prolog present only in XML syntax
                isXml = true;
  +             if (isTopFile) {
  +                 String jspConfigPageEnc = pageInfo.getPageEncoding();
  +                 if (jspConfigPageEnc != null
  +                         && !jspConfigPageEnc.equals(sourceEnc)) {
  +                     err.jspError(
  +                         "jsp.error.page.prolog_config_encoding_conflict",
  +                         sourceEnc, jspConfigPageEnc);
  +                 }
  +                 pageInfo.setXmlPrologEncoding(sourceEnc);
  +             }
            } else if (sourceEnc.equals("UTF-8")) {
                /*
                 * We don't know if we're dealing with an XML document
  
  
  
  1.52      +29 -12    
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java
  
  Index: Validator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- Validator.java    7 Nov 2002 18:34:19 -0000       1.51
  +++ Validator.java    7 Nov 2002 22:19:13 -0000       1.52
  @@ -255,17 +255,34 @@
                    if (pageEncodingSeen) 
                        err.jspError(n, "jsp.error.page.multiple.pageencoding");
                    pageEncodingSeen = true;
  -                 // Make sure the page-encoding specified in a 
  -                 // jsp-property-group (if present) matches that of the page
  -                 // directive
  +                 /*
  +                  * It is a translation-time error to name different page
  +                  * character encodings in two or more of the following:
  +                  * the XML prolog of a JSP page, the pageEncoding
  +                  * attribute of the page directive of the JSP page, and in
  +                  * a JSP configuration element (whose URL pattern matches
  +                  * the page).
  +                  * At this point, we've already verified (in 
  +                  * ParserController.figureOutJspDocument()) that the page
  +                  * character encodings specified in a JSP config element
  +                  * and XML prolog match.
  +                  */
  +                 String compareEnc = null;
                    if (jspProperty != null) {
  -                     String jspConfigPageEnc = jspProperty.getPageEncoding();
  -                     if (jspConfigPageEnc != null
  -                                 && !jspConfigPageEnc.equals(value)) {
  -                         err.jspError(n,
  -                                      "jsp.error.page.pageencoding.conflict",
  -                                      jspConfigPageEnc, value);
  +                     compareEnc = jspProperty.getPageEncoding();
  +                     if (compareEnc != null && !compareEnc.equals(value)) {
  +                         err.jspError(
  +                                n, 
"jsp.error.page.config_pagedir_encoding_conflict",
  +                             compareEnc, value);
                        }
  +                 }
  +                 if (compareEnc == null) {
  +                     compareEnc = pageInfo.getXmlPrologEncoding();
  +                     if (compareEnc != null && !compareEnc.equals(value)) {
  +                         err.jspError(
  +                             n, "jsp.error.page.prolog_pagedir_encoding_conflict",
  +                             compareEnc, value);
  +                     }                       
                    }
                    pageInfo.setPageEncoding(value);
                }
  
  
  
  1.56      +4 -2      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties
  
  Index: messages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- messages.properties       6 Nov 2002 20:14:20 -0000       1.55
  +++ messages.properties       7 Nov 2002 22:19:13 -0000       1.56
  @@ -299,7 +299,9 @@
   jsp.error.not.in.template={0} not allowed in a template text body.
   jsp.error.badaction=The action is not a recognizable standard action.
   jsp.error.tagdirective.badbodycontent=Invalid body-content ({0}) in tag directive
  -jsp.error.page.pageencoding.conflict=Page-encoding specified in jsp-property-group 
({0}) is different from that specified in page directive ({1})
  +jsp.error.page.config_pagedir_encoding_conflict=Page-encoding specified in 
jsp-property-group ({0}) is different from that specified in page directive ({1})
  +jsp.error.page.prolog_pagedir_encoding_conflict=Page-encoding specified in XML 
prolog ({0}) is different from that specified in page directive ({1})
  +jsp.error.page.prolog_config_encoding_conflict=Page-encoding specified in XML 
prolog ({0}) is different from that specified in jsp-property-group ({1})
   jsp.error.attribute.non_rt_with_expr=According to TLD, attribute {0} does not 
accept any expressions
   jsp.error.scripting.variable.missing_name=Unable to determine scripting variable 
name from attribute {0}
   jasper.error.emptybodycontent.nonempty=According to TLD, tag {0} must be empty, but 
is not
  
  
  
  1.22      +4 -2      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_es.properties
  
  Index: messages_es.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_es.properties,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- messages_es.properties    6 Nov 2002 20:14:20 -0000       1.21
  +++ messages_es.properties    7 Nov 2002 22:19:13 -0000       1.22
  @@ -217,7 +217,9 @@
   jsp.warning.bad.urlpattern.propertygroup=
   jsp.error.jspelement.missing.name=
   jsp.error.tagdirective.badbodycontent=
  -jsp.error.page.pageencoding.conflict=
  +jsp.error.page.config_pagedir_encoding_conflict=
  +jsp.error.page.prolog_pagedir_encoding_conflict=
  +jsp.error.page.prolog_config_encoding_conflict=
   jsp.error.attribute.non_rt_with_expr=
   jsp.error.scripting.variable.missing_name=
   jasper.error.emptybodycontent.nonempty=
  
  
  
  1.2       +4 -2      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_fr.properties
  
  Index: messages_fr.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_fr.properties,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- messages_fr.properties    6 Nov 2002 11:38:49 -0000       1.1
  +++ messages_fr.properties    7 Nov 2002 22:19:13 -0000       1.2
  @@ -297,7 +297,9 @@
   jsp.error.not.in.template={0} n''est pas autorisé dans le corps de texte de 
template.
   jsp.error.badaction=L''action n''est pas reconnue comme une action standard.
   jsp.error.tagdirective.badbodycontent=Contenu de corps (body-content) ({0}) 
invalide dans la directive tag
  -jsp.error.page.pageencoding.conflict=L''encode de page (Page-encoding) indiqué dans 
le jsp-property-group ({0}) est différent de celui indiqué dans la directive de page 
({1})
  +jsp.error.page.config_pagedir_encoding_conflict=L''encode de page (Page-encoding) 
indiqué dans le jsp-property-group ({0}) est différent de celui indiqué dans la 
directive de page ({1})
  +jsp.error.page.prolog_pagedir_encoding_conflict=
  +jsp.error.page.prolog_config_encoding_conflict=
   jsp.error.attribute.non_rt_with_expr=D''après la TLD, l''attribut {0} n''accepte 
aucune expression
   jsp.error.scripting.variable.missing_name=Incapable de déterminer le nom de 
variable scripting d''après l''attribut {0}
   jasper.error.emptybodycontent.nonempty=D''après la TLD, le tag {0} doit être vide, 
mais ne l''est pas
  
  
  
  1.22      +4 -2      
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_ja.properties
  
  Index: messages_ja.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages_ja.properties,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- messages_ja.properties    6 Nov 2002 20:14:20 -0000       1.21
  +++ messages_ja.properties    7 Nov 2002 22:19:13 -0000       1.22
  @@ -248,7 +248,9 @@
   jsp.warning.bad.urlpattern.propertygroup=
   jsp.error.jspelement.missing.name=
   jsp.error.tagdirective.badbodycontent=
  -jsp.error.page.pageencoding.conflict=
  +jsp.error.page.config_pagedir_encoding_conflict=
  +jsp.error.page.prolog_pagedir_encoding_conflict=
  +jsp.error.page.prolog_config_encoding_conflict=
   jsp.error.attribute.non_rt_with_expr=
   jsp.error.scripting.variable.missing_name=
   jasper.error.emptybodycontent.nonempty=
  
  
  

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org>

Reply via email to