[ https://issues.apache.org/jira/browse/RATIS-103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16124119#comment-16124119 ]
Tsz Wo Nicholas Sze commented on RATIS-103: ------------------------------------------- > I think it's more safe (but let me know if I am wrong) to use the normal > remove method of the List interface instead of the remove method on the > iterator. ... This is a good idea. Let's also use addAll and removeAll; otherwise, each add and remove will copy a new list in CopyOnWriteArrayList. Will update the patch. > LeaderState.updateSenders may throws UnsupportedOperationException > ------------------------------------------------------------------ > > Key: RATIS-103 > URL: https://issues.apache.org/jira/browse/RATIS-103 > Project: Ratis > Issue Type: Bug > Reporter: Tsz Wo Nicholas Sze > Assignee: Tsz Wo Nicholas Sze > Priority: Minor > Attachments: r103_20170811.patch > > > The CopyOnWriteArrayList may not work well in LeaderState since it does not > support remove. > RaftReconfigurationBaseTest.testRemovePeers() fails with > UnsupportedOperationException. > {code} > Exception in thread "Thread-102" java.lang.UnsupportedOperationException > at > java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1176) > at > org.apache.ratis.server.impl.LeaderState.updateSenders(LeaderState.java:254) > ... > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)