[ 
https://issues.apache.org/jira/browse/WICKET-3874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martijn Dashorst updated WICKET-3874:
-------------------------------------

    Description: 
The getRequests() method of the request logger doesn't work at all. It returns 
a synchronized list which is wrapped in a unmodifiable list. The contents of 
the list is linked list, so whenever you are iterating over the unmodifiable 
list, the request logger is updating the underlying linked list—causing 
ConcurrentModificationExceptions.

At topicus we worked around this by using a rounded buffer in the request 
logger instead of the linked list. This implementation brings improved 
statistics to the request logger, such as average request times across the 
monitored interval and requests per minute.

  was:
The getRequests() method of the request logger doesn't work at all. It returns 
a synchronized list which is wrapped in a unmodifiable list. The contents of 
the list is linked list, so whenever you are iterating over the unmodifiable 
list, the request logger is updating the underlying linked list—causing 
ConcurrentModificationExceptions.

At topicus we worked around this by using a rounded buffer in the request 
logger instead of the linked list. This implementation brings improved 
statistics to the request logger, such as average request times across the 
monitored interval.


> RequestLogger#getRequests throws concurrentmodificationexceptions when used
> ---------------------------------------------------------------------------
>
>                 Key: WICKET-3874
>                 URL: https://issues.apache.org/jira/browse/WICKET-3874
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-core
>    Affects Versions: 1.5-RC5.1
>            Reporter: Martijn Dashorst
>             Fix For: 1.5-RC6
>
>
> The getRequests() method of the request logger doesn't work at all. It 
> returns a synchronized list which is wrapped in a unmodifiable list. The 
> contents of the list is linked list, so whenever you are iterating over the 
> unmodifiable list, the request logger is updating the underlying linked 
> list—causing ConcurrentModificationExceptions.
> At topicus we worked around this by using a rounded buffer in the request 
> logger instead of the linked list. This implementation brings improved 
> statistics to the request logger, such as average request times across the 
> monitored interval and requests per minute.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to