[Yanel-commits] rev 26645 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

josias at wyona.com josias at wyona.com
Thu Aug 9 15:02:58 CEST 2007


Author: josias
Date: 2007-08-09 15:02:57 +0200 (Thu, 09 Aug 2007)
New Revision: 26645

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
make sure the toolbar is inserted only once. fixes bug #5451, thanks to simon

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2007-08-09 12:36:33 UTC (rev 26644)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2007-08-09 13:02:57 UTC (rev 26645)
@@ -1959,6 +1959,8 @@
         int c;
         int state = OUTSIDE_TAG;
         StringBuffer tagBuf = null;
+        int headcount = 0;
+        int bodycount = 0;
         while ((c = reader.read()) != -1) {
             switch (state) {
             case OUTSIDE_TAG:
@@ -1976,17 +1978,32 @@
                     tagBuf.append((char)c);
                     String tag = tagBuf.toString();
                     if (tag.startsWith("<head")) {
-                        writer.write(tag, 0, tag.length());
-                        String toolbarString = getToolbarHeader(resource, request);
-                        writer.write(toolbarString, 0, toolbarString.length());
+                        if (headcount == 0) {
+                            writer.write(tag, 0, tag.length());
+                            String toolbarString = getToolbarHeader(resource, request);
+                            writer.write(toolbarString, 0, toolbarString.length());
+                        } else {
+                            writer.write(tag, 0, tag.length());
+                        }
+                        headcount++;
                     } else if (tag.startsWith("<body")) {
-                        writer.write(tag, 0, tag.length());
-                        String toolbarString = getToolbarBodyStart(resource, request);
-                        writer.write(toolbarString, 0, toolbarString.length());
+                        if (bodycount == 0) {
+                            writer.write(tag, 0, tag.length());
+                            String toolbarString = getToolbarBodyStart(resource, request);
+                            writer.write(toolbarString, 0, toolbarString.length());
+                        } else {
+                            writer.write(tag, 0, tag.length());
+                        }
+                        bodycount++;
                     } else if (tag.equals("</body>")) {
-                        String toolbarString = getToolbarBodyEnd(resource, request);
-                        writer.write(toolbarString, 0, toolbarString.length());
-                        writer.write(tag, 0, tag.length());
+                        bodycount--;
+                        if (bodycount == 0) {
+                            String toolbarString = getToolbarBodyEnd(resource, request);
+                            writer.write(toolbarString, 0, toolbarString.length());
+                            writer.write(tag, 0, tag.length());
+                        } else {
+                            writer.write(tag, 0, tag.length());
+                        }
                     } else {
                         writer.write(tag, 0, tag.length());
                     }



More information about the Yanel-commits mailing list