Not me. :)

Dave wrote:
> Those all look like good and safe fixes to me.
> 
> Anybody object to my making these changes in the trunk?
> 
> - Dave
> 
> 
> On 10/20/06, Robert Yates <[EMAIL PROTECTED]> wrote:
>> Hello,
>>
>> I work alongside Elias here at IBM.
>>
>> We have been recently experimenting with Roller under heavy loads and
>> one of the first things we noticed was the fairly heavy memory usage.
>> When we investigated this we found that there were lots of Sessions
>> and RollerSessions on the heap even though our load was a read only
>> load.
>>
>> I've gone through the code looking at the areas that create sessions,
>> and found a few.  I list these below and hope you'll consider these
>> fairly minor changes as something that could be included in 3.1
>>
>> 1) CharEncodingFilter
>>
>> remove the following lines
>>
>>         // Keep JSTL and Struts Locale's in sync
>>         // NOTE: The session here will get created if it is not
>> present.  This code was taken from its
>>         // earlier incarnation in RequestFilter, which also caused the
>> session to be created.
>>         HttpSession session = ((HttpServletRequest) req).getSession();
>>         if (mLogger.isDebugEnabled()) mLogger.debug("Synchronizing
>> JSTL and Struts locales");
>>         Locale locale = (Locale)
>> session.getAttribute(Globals.LOCALE_KEY);
>>         if (locale == null)
>>         {
>>             locale = req.getLocale();
>>         }
>>         if (req.getParameter("locale") != null)
>>         {
>>             locale = new Locale(req.getParameter("locale"));
>>         }
>>         session.setAttribute(Globals.LOCALE_KEY, locale);
>>         Config.set(session, Config.FMT_LOCALE, locale);
>>
>> given that ?locale= is now deprecated, this code doesn't really do
>> anything.  If JSTL and Struts don't find the session attribute (and in
>> JSTL's case attributes on the page or request) then they will default
>> to the "req.getLocale()".  So putting the value of req.getLocale()
>> into the struts and JSTL session attributes is now redundant.
>>
>> 2) PageServlet, SearchServlet (and possibly PreviewServlet,
>> PreviewServlet is not as important as there will already be a session
>> for the logged in user).
>>
>> All these servlets make this call.
>>
>> PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(
>>                     this, request, response,"", true, 8192, true);
>>
>> The third to last variable indicates whether the session should be
>> created and it is currently set to "true".
>>
>> Could we change the calls to
>>
>> PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(
>>                     this, request, response,"", false, 8192, true);
>>
>> 3) Index.jsp
>>
>> Am not sure whether this is still a problem. I just pulled the latest
>> build and I am not sure that it is still called.  If it is still used
>> then could we add the following "session" attribute to the page
>> directive which will cause the session to not be created.
>>
>> <%@
>> page import="org.apache.roller.config.RollerRuntimeConfig"
>> session="false"%>
>>
>> Please let me know what you think,
>>
>> Thanks,
>>
>> Rob
>>
> 

Reply via email to