Scott Murphy Heiberg created GROOVY-12565:
---------------------------------------------

             Summary: groovy-lsp LspFixture throws 
ConcurrentModificationException while the compile thread publishes
                 Key: GROOVY-12565
                 URL: https://issues.apache.org/jira/browse/GROOVY-12565
             Project: Groovy
          Issue Type: Test
            Reporter: Scott Murphy Heiberg


{{LspFixture}} records the client notifications in a 
{{Collections.synchronizedList}} and plain lists. The server's debounced 
compile thread adds to them while a test iterates them, e.g. 
{{publishedParams*.uri}}, and the iterator of a synchronized list is not 
synchronized. 
{{GroovyLanguageServerTest.publishDiagnosticsIncludeVersionAndClearRemovedUris}}
 failed on CI with a ConcurrentModificationException when the background 
compile published during that read, after the publishing itself was serialized.

Fix: record into {{CopyOnWriteArrayList}}s, whose iterators read a snapshot.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to