-
assigned issue to
AbstractMarkupParameters.toString() is not thread-safe
Issue #1160
resolved
We’ve got a piece of code that shares static Parameters instances between different threads (each with their own IFilter instance). As part of this code, there’s a step where we serialize the parameters object via toString()
. I’ve hit at least 3 separate exceptions in AbstractMarkupParameters.toString()
, all within Yaml.dump()
in the snakeyaml library.
Here’s one of them:
! java.util.ConcurrentModificationException: null
! at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043)
! at java.base/java.util.ArrayList$Itr.next(ArrayList.java:997)
! at org.yaml.snakeyaml.serializer.Serializer.anchorNode(Serializer.java:144)
! at org.yaml.snakeyaml.serializer.Serializer.anchorNode(Serializer.java:148)
! at org.yaml.snakeyaml.serializer.Serializer.serialize(Serializer.java:111)
! at org.yaml.snakeyaml.Yaml.dumpAll(Yaml.java:276)
! at org.yaml.snakeyaml.Yaml.dumpAll(Yaml.java:243)
! at org.yaml.snakeyaml.Yaml.dump(Yaml.java:220)
! at net.sf.okapi.filters.abstractmarkup.config.YamlConfigurationReader.toString(YamlConfigurationReader.java:121)
! at net.sf.okapi.filters.abstractmarkup.config.TaggedFilterConfiguration.toString(TaggedFilterConfiguration.java:285)
! at net.sf.okapi.filters.abstractmarkup.AbstractMarkupParameters.toString(AbstractMarkupParameters.java:46)
We’ve run into problems with SnakeYaml before – see for example https://bitbucket.org/okapiframework/okapi/pull-requests/429.
Comments (2)
-
reporter -
- changed status to resolved
PR #632 has been merged
- Log in to comment
PR #632