Author: kkolinko
Date: Tue Apr 20 14:35:33 2010
New Revision: 935941

URL: http://svn.apache.org/viewvc?rev=935941&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=42390
and avoid https://issues.apache.org/bugzilla/show_bug.cgi?id=48616
Fix compilation error with some nested tag files and simple tags.
Do not declare or synchronize scripting variables for JSP fragments
since they are scriptless.

Modified:
    tomcat/tc5.5.x/trunk/STATUS.txt
    tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
    
tomcat/tc5.5.x/trunk/jasper/src/share/org/apache/jasper/compiler/Generator.java

Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=935941&r1=935940&r2=935941&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Tue Apr 20 14:35:33 2010
@@ -42,13 +42,6 @@ PATCHES PROPOSED TO BACKPORT:
   +1: kkolinko, rjung
   -1:
 
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=42390
-  Fix compilation error with some nested tag files and simple tags
-  https://issues.apache.org/bugzilla/show_bug.cgi?id=48616#c22
-  (https://issues.apache.org/bugzilla/attachment.cgi?id=24993)
-  +1: kkolinko, markt, jfclere
-  -1:
-
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44041
   Threading issue in class loading plus fix for
   https://issues.apache.org/bugzilla/show_bug.cgi?id=48694 a potential deadlock

Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=935941&r1=935940&r2=935941&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Tue Apr 20 
14:35:33 2010
@@ -80,6 +80,12 @@
   <subsection name="Jasper">
     <changelog>
       <fix>
+        <bug>42390</bug>, <bug>48616</bug>: Fix compilation error with some
+        nested tag files and simple tags. Do not declare or synchronize
+        scripting variables for JSP fragments since they are scriptless.
+        (kkolinko)
+      </fix>
+      <fix>
         <bug>48701</bug>: Add a system property to allow disabling enforcement
         of JSP.5.3. The specification recommends, but does not require, this
         enforcement. (kkolinko)

Modified: 
tomcat/tc5.5.x/trunk/jasper/src/share/org/apache/jasper/compiler/Generator.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/jasper/src/share/org/apache/jasper/compiler/Generator.java?rev=935941&r1=935940&r2=935941&view=diff
==============================================================================
--- 
tomcat/tc5.5.x/trunk/jasper/src/share/org/apache/jasper/compiler/Generator.java 
(original)
+++ 
tomcat/tc5.5.x/trunk/jasper/src/share/org/apache/jasper/compiler/Generator.java 
Tue Apr 20 14:35:33 2010
@@ -311,6 +311,9 @@ class Generator {
             }
 
             public void visit(Node.CustomTag n) throws JasperException {
+                // XXX - Actually there is no need to declare those
+                // "_jspx_" + varName + "_" + nestingLevel variables when we 
are
+                // inside a JspFragment.
 
                 if (n.getCustomNestingLevel() > 0) {
                     TagVariableInfo[] tagVarInfos = n.getTagVariableInfos();
@@ -2476,6 +2479,11 @@ class Generator {
         }
 
         private void declareScriptingVars(Node.CustomTag n, int scope) {
+            if (isFragment) {
+                // No need to declare Java variables, if we inside a
+                // JspFragment, because a fragment is always scriptless.
+                return;
+            }
 
             Vector vec = n.getScriptingVars(scope);
             if (vec != null) {
@@ -2525,6 +2533,14 @@ class Generator {
             if (n.getCustomNestingLevel() == 0) {
                 return;
             }
+            if (isFragment) {
+                // No need to declare Java variables, if we inside a
+                // JspFragment, because a fragment is always scriptless.
+                // Thus, there is no need to save/ restore/ sync them.
+                // Note, that JspContextWrapper.syncFoo() methods will take
+                // care of saving/ restoring/ sync'ing of JspContext 
attributes.
+                return;
+            }
 
             TagVariableInfo[] tagVarInfos = n.getTagVariableInfos();
             VariableInfo[] varInfos = n.getVariableInfos();
@@ -2586,6 +2602,14 @@ class Generator {
             if (n.getCustomNestingLevel() == 0) {
                 return;
             }
+            if (isFragment) {
+                // No need to declare Java variables, if we inside a
+                // JspFragment, because a fragment is always scriptless.
+                // Thus, there is no need to save/ restore/ sync them.
+                // Note, that JspContextWrapper.syncFoo() methods will take
+                // care of saving/ restoring/ sync'ing of JspContext 
attributes.
+                return;
+            }
 
             TagVariableInfo[] tagVarInfos = n.getTagVariableInfos();
             VariableInfo[] varInfos = n.getVariableInfos();
@@ -2641,6 +2665,15 @@ class Generator {
          * the given scope.
          */
         private void syncScriptingVars(Node.CustomTag n, int scope) {
+            if (isFragment) {
+                // No need to declare Java variables, if we inside a
+                // JspFragment, because a fragment is always scriptless.
+                // Thus, there is no need to save/ restore/ sync them.
+                // Note, that JspContextWrapper.syncFoo() methods will take
+                // care of saving/ restoring/ sync'ing of JspContext 
attributes.
+                return;
+            }
+
             TagVariableInfo[] tagVarInfos = n.getTagVariableInfos();
             VariableInfo[] varInfos = n.getVariableInfos();
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to