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)