Author: michiel
Date: 2009-05-12 15:02:23 +0200 (Tue, 12 May 2009)
New Revision: 35093

Modified:
   
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ImportTag.java
   
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/WriterHelper.java
Log:
MMB-1817

Modified: 
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ImportTag.java
===================================================================
--- 
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ImportTag.java
    2009-05-12 12:45:16 UTC (rev 35092)
+++ 
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/ImportTag.java
    2009-05-12 13:02:23 UTC (rev 35093)
@@ -77,6 +77,7 @@
 
     public int doStartTag() throws JspTagException {
         value = null;
+        helper.setUse_Stack(false);
         helper.overrideWrite(false);
         log.trace("dostarttag of import");
         findWriter(false);

Modified: 
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/WriterHelper.java
===================================================================
--- 
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/WriterHelper.java
 2009-05-12 12:45:16 UTC (rev 35092)
+++ 
mmbase/trunk/applications/taglib/src/org/mmbase/bridge/jsp/taglib/WriterHelper.java
 2009-05-12 13:02:23 UTC (rev 35093)
@@ -64,7 +64,9 @@
     static final int TYPE_CHARSEQUENCE  = 26;
     static final int TYPE_FILEITEM      = 27;
 
+    private boolean use_Stack = true;
 
+
     static final int stringToType(String tt) {
         String t = tt.toLowerCase();
         if ("string".equals(t)) {
@@ -151,6 +153,12 @@
     }
 
     /**
+     * @since MMBase-1.9.1
+     */
+    public void setUse_Stack(boolean b) {
+        use_Stack = b;
+    }
+    /**
      * Reset to initial values
      */
     public void initTag() {
@@ -442,28 +450,32 @@
 
         PageContext pageContext = thisTag.getPageContext();
 
-        _Stack = (LinkedList<StackEntry>) 
pageContext.getAttribute(STACK_ATTRIBUTE);
-        if (_Stack == null) {
-            _Stack = new LinkedList<StackEntry>();
-            pushed = false;
-            pageContext.setAttribute(STACK_ATTRIBUTE, _Stack);
+        if (use_Stack) {
+            _Stack = (LinkedList<StackEntry>) 
pageContext.getAttribute(STACK_ATTRIBUTE);
+            if (_Stack == null) {
+                _Stack = new LinkedList<StackEntry>();
+                pushed = false;
+                pageContext.setAttribute(STACK_ATTRIBUTE, _Stack);
+            }
+
         }
-
         setJspvar();
-        if (pushed && _Stack.size() > 0) {
+        if (use_Stack) {
+            if (pushed && _Stack.size() > 0) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Value was already pushed by this tag");
+                }
+                _Stack.set(0, new StackEntry(value, getEscaper()));
+            } else {
+                _Stack.addFirst(new StackEntry(value, getEscaper()));
+                pushed = true;
+            }
+            pageContext.setAttribute("_", Casting.wrap(value, getEscaper()));
             if (log.isDebugEnabled()) {
-                log.debug("Value was already pushed by this tag");
+                log.debug("pushed  on _stack, for " + 
thisTag.getClass().getName() + "  now " + _Stack);
+                log.debug("Escaper: " + getEscaper());
             }
-            _Stack.set(0, new StackEntry(value, getEscaper()));
-        } else {
-            _Stack.addFirst(new StackEntry(value, getEscaper()));
-            pushed = true;
         }
-        pageContext.setAttribute("_", Casting.wrap(value, getEscaper()));
-        if (log.isDebugEnabled()) {
-            log.debug("pushed  on _stack, for " + thisTag.getClass().getName() 
+ "  now " + _Stack);
-            log.debug("Escaper: " + getEscaper());
-        }
     }
 
 
@@ -612,8 +624,10 @@
         } catch (IOException ioe){
             throw new TaglibException(ioe);
         }
-        pop_Stack();
-        _Stack = null;
+        if (use_Stack) {
+            pop_Stack();
+            _Stack = null;
+        }
         pushed = false;
         bodyContent = null;
         value = null;

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to