[jitsi-dev] [PATCH] Fix ConconcurrentModificationException in the CallPanel


#1

In updateMergeButtonState(), before iterating through the calls in progress collection, save it as an unmodifiableCollection to avoid ConcurrentModificationException.

Fix ConconcurrentModificationException in the CallPanel.patch (1011 Bytes)


#2

This does not seem right… What Jitsi Subversion revision is that ConcurrentModificationException in CallPanel.updateMergeButtonState() on the line with CallManager.getInProgressCalls() reported against? CallManager.getInProgressCalls() returns a new ArrayList<Call>().

···

On 15.11.2012, at 12:02, Tom Denham <Tom.Denham@metaswitch.com> wrote:

In updateMergeButtonState(), before iterating through the calls in progress collection, save it as an unmodifiableCollection to avoid ConcurrentModificationException.
<Fix ConconcurrentModificationException in the CallPanel.patch>


#3

Additionally, even if a ConcurrentModificationException is thrown at that specific line of code, Collections.unmodifiableCollection will not solve the problem because it does not copy the elements, it wraps around the original Collection and its Iterator in order to throw UnsupportedOperationException and thus prevent modifications.

···

On 15.11.2012, at 12:21, Lyubomir Marinov <lyubomir.marinov@jitsi.org> wrote:

On 15.11.2012, at 12:02, Tom Denham <Tom.Denham@metaswitch.com> wrote:

In updateMergeButtonState(), before iterating through the calls in progress collection, save it as an unmodifiableCollection to avoid ConcurrentModificationException.
<Fix ConconcurrentModificationException in the CallPanel.patch>

This does not seem right… What Jitsi Subversion revision is that ConcurrentModificationException in CallPanel.updateMergeButtonState() on the line with CallManager.getInProgressCalls() reported against? CallManager.getInProgressCalls() returns a new ArrayList<Call>().