Author: cmailleux
Date: Fri Jun 15 16:37:09 2007
New Revision: 397

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D397&repname=
=3Desi_server
Log:
Resolve issue ESI-62

Use a DeferredFileOutputStream which will write file other than 10Mo to dis=
k in temp file before streaming them to webdav to avoid the byte array cach=
e in httpclient.

Update some jars and add commons-fileupload and commons-io

Added:
    trunk/WEB-INF/classes/displaytag.properties
    trunk/WEB-INF/lib/commons-fileupload-1.2.jar   (with props)
    trunk/WEB-INF/lib/commons-io-1.3.1.jar   (with props)
    trunk/WEB-INF/log4j.dtd
Modified:
    trunk/WEB-INF/lib/filterbuilder.jar
    trunk/WEB-INF/lib/htmllexer.jar
    trunk/WEB-INF/lib/htmlparser.jar
    trunk/WEB-INF/lib/thumbelina.jar
    trunk/esiadmin/cachestatus.jsp
    trunk/src/net/sf/j2ep/RequestThrottle.java
    trunk/src/net/sf/j2ep/requesthandlers/EntityEnclosingRequestHandler.java
    trunk/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java
    trunk/src/org/jahia/esi/Utils.java

Added: trunk/WEB-INF/classes/displaytag.properties
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/WEB-INF/=
classes/displaytag.properties&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/WEB-INF/classes/displaytag.properties (added)
+++ trunk/WEB-INF/classes/displaytag.properties Fri Jun 15 16:37:09 2007
@@ -0,0 +1,89 @@
+basic.empty.showtable=3Dfalse
+basic.show.header=3Dtrue
+
+# page | list
+sort.amount=3Dlist
+
+export.amount=3Dlist
+export.decorated=3Dtrue
+
+paging.banner.group_size=3D8
+paging.banner.placement=3Dtop
+
+
+css.tr.even=3Deven
+css.tr.odd=3Dodd
+css.th.sorted=3Dsorted
+css.th.ascending=3Dorder1
+css.th.descending=3Dorder2
+css.table=3D
+css.th.sortable=3Dsortable
+
+# factory classes for extensions
+factory.requestHelper=3Dorg.displaytag.util.DefaultRequestHelperFactory
+
+# locale provider (Jstl provider by default)
+locale.provider=3Dorg.displaytag.localization.I18nJstlAdapter
+
+# locale.resolver (nothing by default, simply use locale from request)
+#locale.resolver=3D
+
+export.types=3Dcsv excel xml pdf
+
+export.csv.class=3Dorg.displaytag.export.CsvView
+export.excel.class=3Dorg.displaytag.export.ExcelView
+export.xml.class=3Dorg.displaytag.export.XmlView
+export.pdf.class=3Dorg.displaytag.export.PdfView
+
+export.csv=3Dtrue
+export.csv.label=3D<span class=3D"export csv">CSV </span>
+export.csv.include_header=3Dfalse
+export.csv.filename=3D
+
+export.excel=3Dtrue
+export.excel.label=3D<span class=3D"export excel">Excel </span>
+export.excel.include_header=3Dtrue
+export.excel.filename=3D
+
+export.xml=3Dtrue
+export.xml.label=3D<span class=3D"export xml">XML </span>
+export.xml.filename=3D
+
+export.pdf=3Dfalse
+export.pdf.label=3D<span class=3D"export pdf">PDF </span>
+export.pdf.include_header=3Dtrue
+export.pdf.filename=3D
+
+
+# messages
+
+basic.msg.empty_list=3DNothing found to display.
+basic.msg.empty_list_row=3D<tr class=3D"empty"><td colspan=3D"{0}">Nothing=
 found to display.</td></tr>
+error.msg.invalid_page=3Dinvalid page
+
+export.banner=3D<div class=3D"exportlinks">Export options: {0}</div>
+export.banner.sepchar=3D | =

+
+paging.banner.item_name=3Ditem
+paging.banner.items_name=3Ditems
+
+paging.banner.no_items_found=3D<span class=3D"pagebanner">No {0} found.</s=
pan>
+paging.banner.one_item_found=3D<span class=3D"pagebanner">One {0} found.</=
span>
+paging.banner.all_items_found=3D<span class=3D"pagebanner">{0} {1} found, =
displaying all {2}.</span>
+paging.banner.some_items_found=3D<span class=3D"pagebanner">{0} {1} found,=
 displaying {2} to {3}.</span>
+
+paging.banner.full=3D<span class=3D"pagelinks">[<a href=3D"{1}">First</a>/=
<a href=3D"{2}">Prev</a>] {0} [<a href=3D"{3}">Next</a>/<a href=3D"{4}">Las=
t</a>]</span>
+paging.banner.first=3D<span class=3D"pagelinks">[First/Prev] {0} [<a href=
=3D"{3}">Next</a>/<a href=3D"{4}">Last</a>]</span>
+paging.banner.last=3D<span class=3D"pagelinks">[<a href=3D"{1}">First</a>/=
<a href=3D"{2}">Prev</a>] {0} [Next/Last]</span>
+paging.banner.onepage=3D<span class=3D"pagelinks">{0}</span>
+
+paging.banner.page.selected=3D<strong>{0}</strong>
+paging.banner.page.link=3D<a href=3D"{1}" title=3D"Go to page {0}">{0}</a>
+paging.banner.page.separator=3D, =

+
+# unused
+save.excel.banner=3D<a href=3D"{0}" rel=3D"external">save ({1} bytes)</a>
+save.excel.filename=3Dexport.xls
+
+
+

Added: trunk/WEB-INF/lib/commons-fileupload-1.2.jar
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/WEB-INF/=
lib/commons-fileupload-1.2.jar&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Binary file - no diff available.

Added: trunk/WEB-INF/lib/commons-io-1.3.1.jar
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/WEB-INF/=
lib/commons-io-1.3.1.jar&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Binary file - no diff available.

Modified: trunk/WEB-INF/lib/filterbuilder.jar
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/WEB-INF/lib/fil=
terbuilder.jar&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Binary files - no diff available.

Modified: trunk/WEB-INF/lib/htmllexer.jar
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/WEB-INF/lib/htm=
llexer.jar&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Binary files - no diff available.

Modified: trunk/WEB-INF/lib/htmlparser.jar
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/WEB-INF/lib/htm=
lparser.jar&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Binary files - no diff available.

Modified: trunk/WEB-INF/lib/thumbelina.jar
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/WEB-INF/lib/thu=
mbelina.jar&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Binary files - no diff available.

Added: trunk/WEB-INF/log4j.dtd
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/WEB-INF/=
log4j.dtd&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/WEB-INF/log4j.dtd (added)
+++ trunk/WEB-INF/log4j.dtd Fri Jun 15 16:37:09 2007
@@ -0,0 +1,166 @@
+<?xml version=3D"1.0" encoding=3D"UTF-8" ?>
+
+<!-- Authors: Chris Taylor, Ceki Gulcu. -->
+
+<!-- Version: 1.2 -->
+
+<!-- A configuration element consists of optional renderer
+elements,appender elements, categories and an optional root
+element. -->
+
+<!ELEMENT log4j:configuration (renderer*, appender*,(category|logger)*,roo=
t?,
+                               categoryFactory?)>
+
+<!-- The "threshold" attribute takes a level value such that all -->
+<!-- logging statements with a level equal or below this value are -->
+<!-- disabled. -->
+
+<!-- Setting the "debug" enable the printing of internal log4j logging   -=
->
+<!-- statements.                                                         -=
->
+
+<!-- By default, debug attribute is "null", meaning that we not do touch -=
->
+<!-- internal log4j logging settings. The "null" value for the threshold -=
->
+<!-- attribute can be misleading. The threshold field of a repository   -->
+<!-- cannot be set to null. The "null" value for the threshold attribute -=
->
+<!-- simply means don't touch the threshold field, the threshold field   -=
-> =

+<!-- keeps its old value.                                                -=
->
+     =

+<!ATTLIST log4j:configuration
+  xmlns:log4j              CDATA #FIXED "http://jakarta.apache.org/log4j/"; =

+  threshold                (all|debug|info|warn|error|fatal|off|null) "nul=
l"
+  debug                    (true|false|null)  "null"
+>
+
+<!-- renderer elements allow the user to customize the conversion of  -->
+<!-- message objects to String.                                       -->
+
+<!ELEMENT renderer EMPTY>
+<!ATTLIST renderer
+  renderedClass  CDATA #REQUIRED
+  renderingClass CDATA #REQUIRED
+>
+
+<!-- Appenders must have a name and a class. -->
+<!-- Appenders may contain an error handler, a layout, optional parameters=
 -->
+<!-- and filters. They may also reference (or include) other appenders. -->
+<!ELEMENT appender (errorHandler?, param*, layout?, filter*, appender-ref*=
)>
+<!ATTLIST appender
+  name                 ID      #REQUIRED
+  class        CDATA   #REQUIRED
+>
+
+<!ELEMENT layout (param*)>
+<!ATTLIST layout
+  class                CDATA   #REQUIRED
+>
+
+<!ELEMENT filter (param*)>
+<!ATTLIST filter
+  class                CDATA   #REQUIRED
+>
+
+<!-- ErrorHandlers can be of any class. They can admit any number of -->
+<!-- parameters. -->
+
+<!ELEMENT errorHandler (param*, root-ref?, logger-ref*,  appender-ref?)> =

+<!ATTLIST errorHandler
+   class        CDATA   #REQUIRED =

+>
+
+<!ELEMENT root-ref EMPTY>
+
+<!ELEMENT logger-ref EMPTY>
+<!ATTLIST logger-ref
+  ref IDREF #REQUIRED
+>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  name         CDATA   #REQUIRED
+  value                CDATA   #REQUIRED
+>
+
+
+<!-- The priority class is org.apache.log4j.Level by default -->
+<!ELEMENT priority (param*)>
+<!ATTLIST priority
+  class   CDATA        #IMPLIED
+  value          CDATA #REQUIRED
+>
+
+<!-- The level class is org.apache.log4j.Level by default -->
+<!ELEMENT level (param*)>
+<!ATTLIST level
+  class   CDATA        #IMPLIED
+  value          CDATA #REQUIRED
+>
+
+
+<!-- If no level element is specified, then the configurator MUST not -->
+<!-- touch the level of the named category. -->
+<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
+<!ATTLIST category
+  class         CDATA   #IMPLIED
+  name         CDATA   #REQUIRED
+  additivity   (true|false) "true"  =

+>
+
+<!-- If no level element is specified, then the configurator MUST not -->
+<!-- touch the level of the named logger. -->
+<!ELEMENT logger (level?,appender-ref*)>
+<!ATTLIST logger
+  name         ID      #REQUIRED
+  additivity   (true|false) "true"  =

+>
+
+
+<!ELEMENT categoryFactory (param*)>
+<!ATTLIST categoryFactory =

+   class        CDATA #REQUIRED>
+
+<!ELEMENT appender-ref EMPTY>
+<!ATTLIST appender-ref
+  ref IDREF #REQUIRED
+>
+
+<!-- If no priority element is specified, then the configurator MUST not -=
->
+<!-- touch the priority of root. -->
+<!-- The root category always exists and cannot be subclassed. -->
+<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
+
+
+<!-- =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -->
+<!--                       A logging event                                =
-->
+<!-- =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -->
+<!ELEMENT log4j:eventSet (log4j:event*)>
+<!ATTLIST log4j:eventSet
+  xmlns:log4j             CDATA #FIXED "http://jakarta.apache.org/log4j/"; =

+  version                (1.1|1.2) "1.2" =

+  includesLocationInfo   (true|false) "true"
+>
+
+
+
+<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?, =

+                       log4j:locationInfo?) >
+
+<!-- The timestamp format is application dependent. -->
+<!ATTLIST log4j:event
+    logger     CDATA #REQUIRED
+    level      CDATA #REQUIRED
+    thread     CDATA #REQUIRED
+    timestamp  CDATA #REQUIRED
+>
+
+<!ELEMENT log4j:message (#PCDATA)>
+<!ELEMENT log4j:NDC (#PCDATA)>
+
+<!ELEMENT log4j:throwable (#PCDATA)>
+
+<!ELEMENT log4j:locationInfo EMPTY>
+<!ATTLIST log4j:locationInfo
+  class  CDATA #REQUIRED
+  method CDATA #REQUIRED
+  file   CDATA #REQUIRED
+  line   CDATA #REQUIRED
+>

Modified: trunk/esiadmin/cachestatus.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/esiadmin/caches=
tatus.jsp&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/esiadmin/cachestatus.jsp (original)
+++ trunk/esiadmin/cachestatus.jsp Fri Jun 15 16:37:09 2007
@@ -1,16 +1,15 @@
-
 <%@ include file=3D"inc/header.jsp" %>
 =

 =

 <%
-            this.getServletContext().setAttribute("urlCacheEntries",cacheS=
tatus.getUrlCacheEntries());
+    this.getServletConfig().getServletContext().setAttribute("urlCacheEntr=
ies", cacheStatus.getUrlCacheEntries());
 =

 %>
 =

 =

 <br>
 <em>
-<h1>Current State of Cache</h1>
+    <h1>Current State of Cache</h1>
 </em>
 <br>
 <br>
@@ -20,7 +19,7 @@
                defaultsort=3D"1" export=3D"true"
                pagesize=3D"30"
                decorator=3D"org.jahia.esi.admin.UrlCacheWrapper"
-               >
+        >
 <display:column property=3D"url"
                 title=3D"URL"
                 sortable=3D"true"
@@ -36,174 +35,174 @@
 <display:column property=3D"updateCount"
                 title=3D"Updates"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"referenceCount"
                 title=3D"Reference Count"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"expirationDelayInSecs"
                 title=3D"Expiration Delay In Secs"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"creationDate"
                 title=3D"Creation Date"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"expirationDateInSecs"
                 title=3D"Expiration Date In Secs"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"timeToLiveInSecs"
                 title=3D"TimeToLive In Secs"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"readCount"
                 title=3D"Read Count"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"hitCount"
                 title=3D"Hit Count"
                 sortable=3D"true"
-                headerClass=3D"sortable" />
+                headerClass=3D"sortable"/>
 =

 <display:column property=3D"methodName"
                 title=3D"Method"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"contentLength"
                 title=3D"Size"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"contentLengthBytes"
                 title=3D"Size in Bytes"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"contentCompressedSize"
                 title=3D"Compressed Size"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"contentType"
                 title=3D"Type"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"valid"
                 title=3D"Valid"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"inUse"
                 title=3D"Currently in Use"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"inUseLastSetDate"
                 title=3D"Last time in Use"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"siteId"
                 title=3D"SiteID"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"pid"
                 title=3D"Pid"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"mode"
                 title=3D"Mode"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"user"
                 title=3D"User who generated entry"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"locale"
                 title=3D"Locale under which entry was generated"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"user"
                 title=3D"User who generated entry"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"userParam"
                 title=3D"User sharing key"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"groupParam"
                 title=3D"Group sharing key"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"aclGroupParam"
                 title=3D"aclGroup sharing key"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"isTemplate"
                 title=3D"Template/Skeleton"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"fragmentId"
                 title=3D"Fragment #"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"absoluteKey"
                 title=3D"Absolute Sharing Key"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"nestedFragments"
                 title=3D"# of Nested Fragments"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />
+        />
 =

 <display:column property=3D"urlKey"
                 title=3D"HashKey"
                 sortable=3D"true"
                 headerClass=3D"sortable"
-                />    =

+        />
 =

 <display:setProperty name=3D"export.pdf"
                      value=3D"true"/>

Modified: trunk/src/net/sf/j2ep/RequestThrottle.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/src/net/sf/j2ep=
/RequestThrottle.java&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/src/net/sf/j2ep/RequestThrottle.java (original)
+++ trunk/src/net/sf/j2ep/RequestThrottle.java Fri Jun 15 16:37:09 2007
@@ -47,16 +47,13 @@
 import org.jahia.esi.settings.SettingsBean;
 =

 /**
- * Throttles request so that simultaneous requests for the same resource o=
nly spawn a maximum of one (or more)
- * requests to the remote server.  Once the remote server returns
- * the resource, then all the waiting throttled requests are fulfilled.
- *
+ * Throttles request so that simultaneous requests for the same resource o=
nly spawn a maximum of one (or more) requests
+ * to the remote server.  Once the remote server returns the resource, the=
n all the waiting throttled requests are
+ * fulfilled.
+ * <p/>
  * This keeps the load down on the remote server.
- *
- * User: Marc
- * Date: Jul 4, 2006
- * Time: 12:32:31 AM
- * Copyright (C) Jahia Inc.
+ * <p/>
+ * User: Marc Date: Jul 4, 2006 Time: 12:32:31 AM Copyright (C) Jahia Inc.
  */
 public class RequestThrottle {
 =

@@ -64,7 +61,7 @@
 =

     int maxParallelRequests =3D 4;
 =

-    double minDelay =3D 500.0; //ms
+    double minDelay =3D 500.0;//ms
     double maxDelay =3D 4000.0;
     double tempDelay;
 =

@@ -72,53 +69,73 @@
     private final ConcurrentHashMap activeRequests =3D new ConcurrentHashM=
ap();
 =

     public RequestThrottle(int maxParallelRequests, long minDelay, long ma=
xDelay) {
-        this.minDelay =3D (double)minDelay;
-        this.maxDelay =3D (double)maxDelay;
+        this.minDelay =3D (double) minDelay;
+        this.maxDelay =3D (double) maxDelay;
         this.maxParallelRequests =3D maxParallelRequests;
-        this.tempDelay =3D maxDelay-minDelay;
+        this.tempDelay =3D maxDelay - minDelay;
     }
 =

     public boolean throttle(String requestKey) {
         boolean timedOut =3D false;
 =

         long startT =3D System.currentTimeMillis();
-        long endWaitTime =3D System.currentTimeMillis() + SettingsBean.get=
Instance().getWaitTimeBeforeReturningMetaRefreshPageInSecs()*1000;
+        long endWaitTime =3D
+                System.currentTimeMillis() +
+                SettingsBean.getInstance().getWaitTimeBeforeReturningMetaR=
efreshPageInSecs() * 1000;
 =

         while (true) {
             //is this request active?
             if (activeRequests.containsKey(requestKey)) {
-                Integer timesRequested =3D  (Integer) activeRequests.get(r=
equestKey);
+                Integer timesRequested =3D (Integer) activeRequests.get(re=
questKey);
                 //sanity check since it's possible that activeRequests was=
 updated between containsKey() call and get()
-                if (timesRequested=3D=3Dnull) {
-                    if (log.isDebugEnabled()) log.debug("Request Integer c=
ount for "+requestKey+" was deleted by another concurrent access.");
+                if (timesRequested =3D=3D null) {
+                    if (log.isDebugEnabled()) log.debug("Request Integer c=
ount for " +
+                                                        requestKey +
+                                                        " was deleted by a=
nother concurrent access.");
                     //so add it
-                    activeRequests.put(requestKey, new Integer(1) );
+                    activeRequests.put(requestKey, new Integer(1));
                     break;
                 }
                 //yes, and we already have all slots granted to it, so wait
-                else if (timesRequested.intValue() >=3D maxParallelRequest=
s ) {
+                else if (timesRequested.intValue() >=3D maxParallelRequest=
s) {
                     try {
                         long delay =3D getDelay();
-                        if (log.isInfoEnabled()) log.info("stalling ["+req=
uestKey+"] for ["+delay+"ms]. Total wait : "+(System.currentTimeMillis()-st=
artT)+" msecs. Throttle Queue size "+activeRequests.size()+".");
+                        if (log.isInfoEnabled()) log.info("stalling [" +
+                                                          requestKey +
+                                                          "] for [" +
+                                                          delay +
+                                                          "ms]. Total wait=
 : " +
+                                                          (System.currentT=
imeMillis() - startT) +
+                                                          " msecs. Throttl=
e Queue size " +
+                                                          activeRequests.s=
ize() +
+                                                          ".");
                         Thread.sleep(delay);
-                    } catch (InterruptedException e) {}
+                    } catch (InterruptedException e) {
+                    }
                 }
                 //no, so mark it and fetch it now
                 else {
-                    if (log.isDebugEnabled()) log.debug("incrementing ["+r=
equestKey+"] (was:"+timesRequested+")");
-                    activeRequests.put(requestKey, new Integer(timesReques=
ted.intValue() + 1) );
+                    if (log.isDebugEnabled())
+                        log.debug("incrementing [" + requestKey + "] (was:=
" + timesRequested + ")");
+                    activeRequests.put(requestKey, new Integer(timesReques=
ted.intValue() + 1));
                     break;
                 }
             }
             //not active, so mark it as active and fetch it now
             else {
-                activeRequests.put(requestKey, new Integer(1) );
+                activeRequests.put(requestKey, new Integer(1));
                 break;
             }
 =

             if (endWaitTime < System.currentTimeMillis()) {
                 timedOut =3D true;
-                if (log.isInfoEnabled()) log.info("Exceeded max throttling=
 time for ["+requestKey+"]. Total wait was : "+(System.currentTimeMillis()-=
startT)+" msecs. Throttle Queue size "+activeRequests.size()+".");
+                if (log.isInfoEnabled()) log.info("Exceeded max throttling=
 time for [" +
+                                                  requestKey +
+                                                  "]. Total wait was : " +
+                                                  (System.currentTimeMilli=
s() - startT) +
+                                                  " msecs. Throttle Queue =
size " +
+                                                  activeRequests.size() +
+                                                  ".");
                 //TODO: could remove appropriate entry in activeRequests, =
but this if done in ResponseHandlerBase finally() method.
                 break;
             }
@@ -128,25 +145,28 @@
     }
 =

     public void removeRequest(String requestKey) {
-
-        if (activeRequests.containsKey(requestKey)) {
-            Integer timesRequested =3D  (Integer) activeRequests.get(reque=
stKey);
-            if (timesRequested.intValue() <=3D 1 ) {
+        Integer timesRequested =3D (Integer) activeRequests.get(requestKey=
);
+        if (timesRequested !=3D null) {
+            if (timesRequested.intValue() <=3D 1) {
                 activeRequests.remove(requestKey);
-                if (log.isDebugEnabled()) log.debug("removed ["+requestKey=
+"]");
+                if (log.isDebugEnabled()) log.debug("removed [" + requestK=
ey + "]");
             }
             else {
-                activeRequests.put(requestKey, new Integer(timesRequested.=
intValue() - 1) );
-                if (log.isDebugEnabled()) log.debug("decremented ["+reques=
tKey+"] (was:"+timesRequested+")");
+                activeRequests.put(requestKey, new Integer(timesRequested.=
intValue() - 1));
+                if (log.isDebugEnabled()) log.debug("decremented [" + requ=
estKey + "] (was:" + timesRequested + ")");
             }
         }
         else {
-             log.warn("trying to remove absent ["+requestKey+"] from Throt=
tle Queue (size "+activeRequests.size()+").");
+            log.warn("trying to remove absent [" +
+                     requestKey +
+                     "] from Throttle Queue (size " +
+                     activeRequests.size() +
+                     ").");
         }
     }
 =

     public long getDelay() {
-        return (long)(minDelay + Math.random()*tempDelay);
+        return (long) (minDelay + Math.random() * tempDelay);
     }
 =

 }

Modified: trunk/src/net/sf/j2ep/requesthandlers/EntityEnclosingRequestHandl=
er.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/src/net/sf/j2ep=
/requesthandlers/EntityEnclosingRequestHandler.java&rev=3D397&repname=3Desi=
_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/src/net/sf/j2ep/requesthandlers/EntityEnclosingRequestHandler.jav=
a (original)
+++ trunk/src/net/sf/j2ep/requesthandlers/EntityEnclosingRequestHandler.jav=
a Fri Jun 15 16:37:09 2007
@@ -1,12 +1,12 @@
 /*
  * Copyright 2000,2004 The Apache Software Foundation.
- * =

+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * =

+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * =

+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,13 +18,20 @@
 =

 import net.sf.j2ep.factories.ResponseHandlerFactory;
 import net.sf.j2ep.methods.WebDavMethod;
+import org.apache.commons.fileupload.servlet.ServletFileUpload;
+import org.apache.commons.fileupload.servlet.ServletRequestContext;
 import org.apache.commons.httpclient.HttpMethod;
 import org.apache.commons.httpclient.methods.*;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.output.DeferredFileOutputStream;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 =

 import javax.servlet.http.HttpServletRequest;
+import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 =

 /**
  * Handler for POST and PUT methods.
@@ -36,33 +43,81 @@
     private static final transient Log log =3D LogFactory.getLog(EntityEnc=
losingRequestHandler.class);
 =

     /**
-     * Will set the input stream and the Content-Type header to match this=
 request.
-     * Will also set the other headers send in the request.
+     * Will set the input stream and the Content-Type header to match this=
 request. Will also set the other headers send
+     * in the request.
      *
      * @throws IOException An exception is throws when there is a problem =
getting the input stream
      * @see net.sf.j2ep.model.RequestHandler#process(javax.servlet.http.Ht=
tpServletRequest,java.lang.String)
      */
-    public HttpMethod process(HttpServletRequest request, String url) thro=
ws IOException {
+    public HttpMethod process(final HttpServletRequest request, String url=
) throws IOException {
 =

         HttpMethod method =3D null;
-
+        boolean isMultipart =3D false;
         if (request.getMethod().equalsIgnoreCase("POST")) {
             method =3D new PostMethod(url);
-        } else if (request.getMethod().equalsIgnoreCase("PUT")) {
+            final ServletRequestContext servletRequestContext =3D new Serv=
letRequestContext(request);
+            if (ServletFileUpload.isMultipartContent(servletRequestContext=
)) {
+                isMultipart =3D true;
+                method.getParams().setSoTimeout(1000 * 60 * 5);//(1s * 60 =
=3D 1min) * 5 =3D 5 min
+                ((PostMethod) method).setRequestEntity(new RequestEntity()=
 {
+                    InputStream content =3D request.getInputStream();
+                    private long contentLength =3D -2;
+                    private String contentType =3D request.getContentType(=
);
+                    private DeferredFileOutputStream dfos;
+
+                    public boolean isRepeatable() {
+                        return true;
+                    }
+
+                    public void writeRequest(OutputStream out) throws IOEx=
ception {
+                        dfos.writeTo(out);
+                        final File file =3D dfos.getFile();
+                        if (file !=3D null && file.exists()) file.delete();
+                    }
+
+                    public long getContentLength() {
+                        if (contentLength =3D=3D -2) {
+                            try {
+                                dfos =3D new DeferredFileOutputStream(1024=
 * 1024 * 10,
+                                                                     File.=
createTempFile("temp", "upload"));
+                                IOUtils.copy(content, dfos);
+                            } catch (IOException e) {
+                                log.error("Error during copy of file", e);
+                            } finally {
+                                if (dfos !=3D null) try {
+                                    dfos.close();
+                                    contentLength =3D dfos.getByteCount();
+                                } catch (IOException e) {
+                                    log.error("Error during closing of fil=
e", e);
+                                }
+                            }
+                        }
+                        return contentLength;
+                    }
+
+                    public String getContentType() {
+                        return contentType;
+                    }
+                });
+            }
+        }
+        else if (request.getMethod().equalsIgnoreCase("PUT")) {
             method =3D new PutMethod(url);
-        } else if (request.getMethod().equalsIgnoreCase("DELETE")) {
+        }
+        else if (request.getMethod().equalsIgnoreCase("DELETE")) {
             method =3D new DeleteMethod(url);
-        } else if (ResponseHandlerFactory.handledWebDAVMethods.indexOf(req=
uest.getMethod().toUpperCase()) !=3D -1) {
+        }
+        else if (ResponseHandlerFactory.handledWebDAVMethods.indexOf(reque=
st.getMethod().toUpperCase()) !=3D -1) {
             method =3D new WebDavMethod(request.getMethod().toUpperCase(),=
 url);
             log.debug("WebDAV method [" + request.getMethod() + "] for req=
uest url [" + url + "]");
         }
 =

         setHeaders(method, request);
 =

-        InputStreamRequestEntity stream;
-        stream =3D new InputStreamRequestEntity(request.getInputStream());
         if (method !=3D null) {
-            if (method instanceof EntityEnclosingMethod) {
+            if (method instanceof EntityEnclosingMethod && !isMultipart) {
+                InputStreamRequestEntity stream;
+                stream =3D new InputStreamRequestEntity(request.getInputSt=
ream());
                 ((EntityEnclosingMethod) method).setRequestEntity(stream);
             }
             method.setRequestHeader("Content-type", request.getContentType=
());
@@ -70,6 +125,4 @@
         return method;
 =

     }
-
-
 }

Modified: trunk/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/src/net/sf/j2ep=
/responsehandlers/ResponseHandlerBase.java&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java (origin=
al)
+++ trunk/src/net/sf/j2ep/responsehandlers/ResponseHandlerBase.java Fri Jun=
 15 16:37:09 2007
@@ -525,9 +525,11 @@
 =

         initOrigRequestUrl(_clientRequest, server);
 =

-        String cacheKey =3D CacheKeyGenerator.getInstance().generateEntryK=
eyUsingCookie(server, clientRequest, this.getClientRequestURL(), true);
+        URL requestURL =3D this.getClientRequestURL();
+        String cacheKey =3D CacheKeyGenerator.getInstance().generateEntryK=
eyUsingCookie(server, clientRequest,
+                                                                          =
            requestURL, true);
 =

-        String clientRequestUrl =3D this.getClientRequestURL().toString();=
 //TODO: inefficient: called twice in a row
+        String clientRequestUrl =3D requestURL.toString(); //TODO: ineffic=
ient: called twice in a row
         String throttlingKey =3D clientRequest.getMethod().toUpperCase() +=
 clientRequestUrl;
 =

         MainCache mainCache =3D MainCache.getInstance();
@@ -539,13 +541,13 @@
         boolean throttledCurrentRequest =3D false;
         boolean fetchedNewData =3D false;
 =

+        final SettingsBean settingsBean =3D SettingsBean.getInstance();
         try {
             //Deal with POSTs and such like
             if (RuleExecutor.getInstance().checkforMatchingPassThroughRule=
s(server, clientRequest, methodToServer, clientRequestUrl)) {
 =

                 throttlingKey =3D throttlingKey+Utils.getUserCookieValue(c=
lientRequest);
-                if (SettingsBean.getInstance().isRequestThrottle()
-                    && SettingsBean.getInstance().isRequestThrottlePOSTs()=
) {
+                if (settingsBean.isRequestThrottle() && settingsBean.isReq=
uestThrottlePOSTs()) {
                     boolean triggerMetaRefresh =3D systemInit.getRequestTh=
rottle().throttle(throttlingKey);  //TODO: add special rule for login/logou=
t pages so as not to throttle them?
                     throttledCurrentRequest =3Dtrue;
                     if (triggerMetaRefresh) {
@@ -595,11 +597,12 @@
                 String requestInfoKey =3D null;
                 boolean userAclDeclaredForCurrentRequest=3Dfalse;
 =

-                if (SettingsBean.getInstance().isEnableTemplateCaching()) {
+                if (settingsBean.isEnableTemplateCaching()) {
                     String[] userInfo =3D retrieveUserInfo(clientRequest);
                     userName =3D userInfo[0];
                     userAclGroupKey =3D userInfo[1];
-                    requestInfoKey =3D CacheKeyGenerator.getInstance().gen=
erateRequestInfoKey(server, clientRequest, this.getClientRequestURL()) ;
+                    requestInfoKey =3D CacheKeyGenerator.getInstance().gen=
erateRequestInfoKey(server, clientRequest,
+                                                                          =
                  requestURL) ;
                     requestInfo =3D mainCache.getRequestInfo(requestInfoKe=
y);
                     if (requestInfo!=3Dnull && userName!=3Dnull)
                          userAclDeclaredForCurrentRequest =3D requestInfo.=
isUserInTemplateUserACLs(userName);
@@ -617,7 +620,8 @@
                             && requestInfo!=3Dnull  //we must have fetched=
 its info beforehand
                             && requestInfo.isAclGroupTemplate() //must be =
a template
                             && userName!=3Dnull ) { //not a guest user, bu=
t logged-in user
-                        newCacheKey =3D CacheKeyGenerator.getInstance().ge=
nerateEntryKeyUsingUserGroups (server, clientRequest, this.getClientRequest=
URL(), true,userAclGroupKey);
+                        newCacheKey =3D CacheKeyGenerator.getInstance().ge=
nerateEntryKeyUsingUserGroups (server, clientRequest,
+                                                                          =
                             requestURL, true,userAclGroupKey);
                         if (log.isDebugEnabled())
                             log.debug("aclGrouped shared Template detected=
. userAclGroupKey ["+userAclGroupKey+"] - userName ["+userName+"]");
                         yesItsCached =3D mainCache.contains(newCacheKey,tr=
ue,userAclGroupKey,userName,requestInfo);
@@ -628,7 +632,8 @@
                         // ok but still try find entry without the esi coo=
kie in urlKey
                         // since this might be a non-esi-parsable obj (i.e=
 binary, css, static html)
                         // which is stored without a cookie:
-                        newCacheKey =3D CacheKeyGenerator.getInstance().ge=
nerateEntryKeyWithoutCookie(server, clientRequest, this.getClientRequestURL=
(), true);
+                        newCacheKey =3D CacheKeyGenerator.getInstance().ge=
nerateEntryKeyWithoutCookie(server, clientRequest,
+                                                                          =
                          requestURL, true);
                         yesItsCached =3D mainCache.contains(newCacheKey,tr=
ue, userAclGroupKey,userName,requestInfo); //TODO: the last 3 aclGroup para=
ms might not be necessary
                         throttlingKey =3D throttlingKey+Utils.getUserCooki=
eValue(clientRequest);
                     }
@@ -671,7 +676,7 @@
                         if (cacheObject.getUrlCacheObject().getResponseHea=
der(EsiConst.JAHIAESI_PID) !=3D null) {
                             //If AggregatePageOnTheFly=3Dtrue and this isn=
't a guest user, then we need to regenerate
                             //this entry from scratch, so ignore the cache=
d entry (since it is only the skeleton, not the whole page)
-                            if (SettingsBean.getInstance().isAggregateLogg=
edUserPagesOnTheFly()
+                            if (settingsBean.isAggregateLoggedUserPagesOnT=
heFly()
                                     //this IS a logged-in user
                                     && Utils.getUserCookieValue(clientRequ=
est)!=3Dnull ) {
                                 cacheObject =3D null;
@@ -721,7 +726,7 @@
                 byte[] wholePageBytes =3D null;
 =

                 //deal with the case when we are overloaded with request, =
just return a refresh-later page back to client browser
-                if (    SettingsBean.getInstance().isEnableMetaRefreshOnHe=
avyLoad()
+                if (    settingsBean.isEnableMetaRefreshOnHeavyLoad()
                         &&  !cached
                         && systemInit.getCacheableThreadsAvailable().avail=
ablePermits() =3D=3D 0) {
                     boolean resourcesNowAvailable =3D waitLoop();
@@ -732,7 +737,7 @@
                 }
 =

                 if (!cached ) {
-                    if (SettingsBean.getInstance().isRequestThrottle()) {
+                    if (settingsBean.isRequestThrottle()) {
                         boolean triggerMetaRefresh =3D systemInit.getReque=
stThrottle().throttle(throttlingKey);
                         throttledCurrentRequest =3Dtrue;
                         if (triggerMetaRefresh) {
@@ -831,8 +836,8 @@
                 //So we can guarantee that the returned Set-Cookie is the =
one targetted for the current client
                 boolean ignoreCookies =3D !freshCopy;
                 //special case for OntheFly and aclGrou-template sharing, =
since these always use fetch() but don't necessarily retrieve from remote s=
erver
-                if ((SettingsBean.getInstance().isAggregateLoggedUserPages=
OnTheFly()
-                                 || SettingsBean.getInstance().isEnableTem=
plateCaching())
+                if ((settingsBean.isAggregateLoggedUserPagesOnTheFly()
+                                 || settingsBean.isEnableTemplateCaching())
                                     && wholePageBytes!=3Dnull )
                     ignoreCookies =3D !fetchedNewData;
 =

@@ -896,8 +901,8 @@
 =

                             //If AggregateLoggedUserPagesOnTheFly=3Dtrue, =
the wholepage is served then deleted so that
                             //we only keep the skeleton in cache
-                            if ((SettingsBean.getInstance().isAggregateLog=
gedUserPagesOnTheFly()
-                                 || SettingsBean.getInstance().isEnableTem=
plateCaching())
+                            if ((settingsBean.isAggregateLoggedUserPagesOn=
TheFly()
+                                 || settingsBean.isEnableTemplateCaching())
                                     && wholePageBytes!=3Dnull ) {
                                 sendStreamToClientFromCache(clientResponse=
, wholePageBytes);
                             }
@@ -926,7 +931,7 @@
             }
         }
         finally {
-            if (throttledCurrentRequest && SettingsBean.getInstance().isRe=
questThrottle()) {
+            if (throttledCurrentRequest && settingsBean.isRequestThrottle(=
)) {
                 systemInit.getRequestThrottle().removeRequest(throttlingKe=
y);
             }
 =


Modified: trunk/src/org/jahia/esi/Utils.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/src/org/jahia/e=
si/Utils.java&rev=3D397&repname=3Desi_server
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/src/org/jahia/esi/Utils.java (original)
+++ trunk/src/org/jahia/esi/Utils.java Fri Jun 15 16:37:09 2007
@@ -77,7 +77,7 @@
     public static final String COPYRIGHT =3D
             "&copy; Copyright 2002-2007 <a href=3D\"http://www.jahia.org\"=
 target=3D\"newJahia\">Jahia Ltd</a> -";
 =

-    public static final String  BUILDNUMBER=3D"buildnumber_379:395M";
+    public static final String  BUILDNUMBER=3D"buildnumber_379:396M";
 =

     public static String stackTraceToString(Exception ex) {
         // Append stack trace if not null

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to