You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martijn Dashorst (JIRA)" <ji...@apache.org> on 2011/07/06 11:05:17 UTC

[jira] [Created] (WICKET-3874) RequestLogger#getRequests throws concurrentmodificationexceptions when used

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.

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

       

[jira] [Resolved] (WICKET-3874) RequestLogger#getRequests throws concurrentmodificationexceptions when used

Posted by "Martijn Dashorst (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martijn Dashorst resolved WICKET-3874.
--------------------------------------

    Resolution: Fixed

> 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
>            Assignee: 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

       

[jira] [Assigned] (WICKET-3874) RequestLogger#getRequests throws concurrentmodificationexceptions when used

Posted by "Martijn Dashorst (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martijn Dashorst reassigned WICKET-3874:
----------------------------------------

    Assignee: Martijn Dashorst

> 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
>            Assignee: 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

       

[jira] [Updated] (WICKET-3874) RequestLogger#getRequests throws concurrentmodificationexceptions when used

Posted by "Martijn Dashorst (JIRA)" <ji...@apache.org>.
     [ 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