Author: gawor
Date: Mon Dec 10 20:53:03 2012
New Revision: 1419754
URL: http://svn.apache.org/viewvc?rev=1419754&view=rev
Log:
No pageContext in tag files' generated java code when using JSTL tagplugin Set - https://issues.apache.org/bugzilla/show_bug.cgi?id=54012
Modified:
geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/Compiler.java
geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/PageInfo.java
geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/TagPluginManager.java
geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/tagplugin/TagPluginContext.java
geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/tagplugins/jstl/core/Set.java
Modified: geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/Compiler.java
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/Compiler.java?rev=1419754&r1=1419753&r2=1419754&view=diff
==============================================================================
--- geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/Compiler.java
(original)
+++ geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/Compiler.java
Mon Dec 10 20:53:03 2012
@@ -108,7 +108,7 @@ public abstract class Compiler {
// Setup page info area
pageInfo = new PageInfo(new BeanRepository(ctxt.getClassLoader(),
- errDispatcher), ctxt.getJspFile());
+ errDispatcher), ctxt.getJspFile(), ctxt.isTagFile());
JspConfig jspConfig = options.getJspConfig();
JspConfig.JspProperty jspProperty = jspConfig.findJspProperty(ctxt
Modified: geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/PageInfo.java
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/PageInfo.java?rev=1419754&r1=1419753&r2=1419754&view=diff
==============================================================================
--- geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/PageInfo.java
(original)
+++ geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/PageInfo.java
Mon Dec 10 20:53:03 2012
@@ -99,8 +99,10 @@ class PageInfo {
// JSP 2.2
private boolean errorOnUndeclaredNamepsace = false;
- PageInfo(BeanRepository beanRepository, String jspFile) {
+ private boolean isTagFile = false;
+ PageInfo(BeanRepository beanRepository, String jspFile, boolean isTagFile) {
+ this.isTagFile = isTagFile;
this.jspFile = jspFile;
this.beanRepository = beanRepository;
this.varInfoNames = new HashSet<String>();
@@ -119,6 +121,10 @@ class PageInfo {
imports.addAll(Constants.STANDARD_IMPORTS);
}
+ public boolean isTagFile() {
+ return isTagFile;
+ }
+
/**
* Check if the plugin ID has been previously declared. Make a not
* that this Id is now declared.
Modified: geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/TagPluginManager.java
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/TagPluginManager.java?rev=1419754&r1=1419753&r2=1419754&view=diff
==============================================================================
--- geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/TagPluginManager.java
(original)
+++ geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/TagPluginManager.java
Mon Dec 10 20:53:03 2012
@@ -243,6 +243,11 @@ public class TagPluginManager {
curNodes = node.getAtETag();
}
+ @Override
+ public boolean isTagFile() {
+ return pageInfo.isTagFile();
+ }
+
private Node.JspAttribute getNodeAttribute(String attribute) {
Node.JspAttribute[] attrs = node.getJspAttributes();
for (int i=0; attrs != null && i < attrs.length; i++) {
Modified: geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/tagplugin/TagPluginContext.java
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/tagplugin/TagPluginContext.java?rev=1419754&r1=1419753&r2=1419754&view=diff
==============================================================================
--- geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/tagplugin/TagPluginContext.java
(original)
+++ geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/compiler/tagplugin/TagPluginContext.java
Mon Dec 10 20:53:03 2012
@@ -120,5 +120,10 @@ public interface TagPluginContext {
* Get the value of an attribute in the current tagplugin context.
*/
Object getPluginAttribute(String attr);
+
+ /**
+ * Is the tag being used inside a tag file?
+ */
+ boolean isTagFile();
}
Modified: geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/tagplugins/jstl/core/Set.java
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/tagplugins/jstl/core/Set.java?rev=1419754&r1=1419753&r2=1419754&view=diff
==============================================================================
--- geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/tagplugins/jstl/core/Set.java
(original)
+++ geronimo/external/trunk/tomcat-parent-7.0.27/jasper/src/main/java/org/apache/jasper/tagplugins/jstl/core/Set.java
Mon Dec 10 20:53:03 2012
@@ -70,14 +70,20 @@ public class Set implements TagPlugin {
//if the attribute var has been specified then assign the result to the var;
if(hasVar){
+ String jspCtxt = null;
+ if (ctxt.isTagFile()) {
+ jspCtxt = "this.getJspContext()";
+ } else {
+ jspCtxt = "_jspx_page_context";
+ }
String strVar = ctxt.getConstantAttribute("var");
ctxt.generateJavaSource("if(null != " + resultName + "){");
- ctxt.generateJavaSource(" pageContext.setAttribute(\"" + strVar + "\"," +
resultName + "," + iScope + ");");
+ ctxt.generateJavaSource(" " + jspCtxt + ".setAttribute(\"" + strVar + "\","
+ resultName + "," + iScope + ");");
ctxt.generateJavaSource("} else {");
if(hasScope){
- ctxt.generateJavaSource(" pageContext.removeAttribute(\"" + strVar + "\","
+ iScope + ");");
+ ctxt.generateJavaSource(" " + jspCtxt + ".removeAttribute(\"" + strVar
+ "\"," + iScope + ");");
}else{
- ctxt.generateJavaSource(" pageContext.removeAttribute(\"" + strVar + "\");");
+ ctxt.generateJavaSource(" " + jspCtxt + ".removeAttribute(\"" + strVar
+ "\");");
}
ctxt.generateJavaSource("}");
|