You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2011/08/08 16:52:02 UTC
svn commit: r1154977 - in
/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper:
compiler/JspRuntimeContext.java runtime/ExternalServletContextWrapper.java
Author: justin
Date: Mon Aug 8 14:52:02 2011
New Revision: 1154977
URL: http://svn.apache.org/viewvc?rev=1154977&view=rev
Log:
SLING-2169 - reimplementing c:import support by resetting the USE_OWN_FACTORY usage counter to 0 before an include/forward and then restoring the value after the include/forward
Modified:
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JspRuntimeContext.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/runtime/ExternalServletContextWrapper.java
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JspRuntimeContext.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JspRuntimeContext.java?rev=1154977&r1=1154976&r2=1154977&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JspRuntimeContext.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JspRuntimeContext.java Mon Aug 8 14:52:02 2011
@@ -150,8 +150,14 @@ public final class JspRuntimeContext {
JspRuntimeContext.USE_OWN_FACTORY.set(count - 1);
}
- public JspFactory getOriginal() {
- return original;
+ public int resetUsage() {
+ final Integer count = JspRuntimeContext.USE_OWN_FACTORY.get();
+ JspRuntimeContext.USE_OWN_FACTORY.set(0);
+ return count;
+ }
+
+ public void setUsage(int count) {
+ JspRuntimeContext.USE_OWN_FACTORY.set(count);
}
}
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/runtime/ExternalServletContextWrapper.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/runtime/ExternalServletContextWrapper.java?rev=1154977&r1=1154976&r2=1154977&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/runtime/ExternalServletContextWrapper.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/runtime/ExternalServletContextWrapper.java Mon Aug 8 14:52:02 2011
@@ -158,28 +158,28 @@ class ExternalServletContextWrapper impl
public void forward(ServletRequest request, ServletResponse response) throws ServletException,
IOException {
- JspFactory saveDefaultFactory = JspFactory.getDefaultFactory();
- if (saveDefaultFactory instanceof JspFactoryHandler) {
+ JspFactory jspFactory = JspFactory.getDefaultFactory();
+ if (jspFactory instanceof JspFactoryHandler) {
pageContext.getOut().flush();
- JspFactory.setDefaultFactory(((JspFactoryHandler)saveDefaultFactory).getOriginal());
+ final int count = ((JspFactoryHandler)jspFactory).resetUsage();
try {
delegate.forward(request, response);
} finally {
- JspFactory.setDefaultFactory(saveDefaultFactory);
+ ((JspFactoryHandler)jspFactory).setUsage(count);
}
}
}
public void include(ServletRequest request, ServletResponse response) throws ServletException,
IOException {
- JspFactory saveDefaultFactory = JspFactory.getDefaultFactory();
- if (saveDefaultFactory instanceof JspFactoryHandler) {
+ JspFactory jspFactory = JspFactory.getDefaultFactory();
+ if (jspFactory instanceof JspFactoryHandler) {
pageContext.getOut().flush();
- JspFactory.setDefaultFactory(((JspFactoryHandler)saveDefaultFactory).getOriginal());
+ final int count = ((JspFactoryHandler)jspFactory).resetUsage();
try {
delegate.include(request, response);
} finally {
- JspFactory.setDefaultFactory(saveDefaultFactory);
+ ((JspFactoryHandler)jspFactory).setUsage(count);
}
}