https://issues.apache.org/bugzilla/show_bug.cgi?id=52999

             Bug #: 52999
           Summary: Performance issue with locking in
                    ContainerBase.fireContainerEvent()
           Product: Tomcat 7
           Version: 7.0.26
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Catalina
        AssignedTo: dev@tomcat.apache.org
        ReportedBy: knst.koli...@gmail.com
    Classification: Unclassified


This was reported on dev list [1]:

> 2) org.apache.catalina.core.ContainerBase.fireContainerEvent;
> That method contains critical section:
>  synchronized (listeners) {
>        list = listeners.toArray(list);
> }
>
> Is is called pretty often with every put operation into request or
> session map. That code in tomcat looks like a candidate for
> CopyOnWriteArrayList
>

I confirm that I see fireContainerEvent() calls in many places in
StandardSession.

Moreover those are two nested loops:  a loop in StandardSession over array
of context.getApplicationEventListeners(); x copying the list of container
listeners inside into array in context.fireContainerEvent().

I cannot confirm reported problem with request attributes - I do not see
anything in the code that would send events from that access.

Is it possible to solve it with a ReadWriteLock?
Or it would be better to have a helper class that avoids copying the array over
on every access (the said copy-on-write one)?

I classify this as an enhancement request.

[1] Thread "Two performance problems (found during myfaces testing)" on dev
list, starting on 2012-03-08,
- http://tomcat.markmail.org/thread/7bbvzmkvyvryvn44
- http://marc.info/?t=133124021200002&r=1&w=2

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to