[ https://jira.codehaus.org/browse/MCHECKSTYLE-244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=350844#comment-350844 ]
Konstantin Pokrovsky commented on MCHECKSTYLE-244: -------------------------------------------------- Actually the purpose of report is not to show that code is not thread safe. The code is fine. But the component instantiation strategy is wrong. I've just changed component annotation to instantiate "per-lookup" and the new plugin build successfully passed 100 paralleled builds without any exceptions. The same is about DefaultCheckstyleRssGenerator: even if the code is thread safe do you really need to instantiate it as a singleton? Does it give any significant advantage? > LicenseResourceManager component is not thread safe and causes parallel build > failures > -------------------------------------------------------------------------------------- > > Key: MCHECKSTYLE-244 > URL: https://jira.codehaus.org/browse/MCHECKSTYLE-244 > Project: Maven Checkstyle Plugin > Issue Type: Bug > Affects Versions: 2.12, 2.12.1 > Reporter: Konstantin Pokrovsky > > *LicenseResouceManager* component does not specify instantiation strategy. By > default plexus uses singleton strategey which leads to > *ConcurrentModificationException* in parallel maven builds. > Example: when two *DefaultCheckstyleExecutors* try to use one licence > manager: one calls *addSearchPath* on *FileResourceLoader* while the other > one iterating over paths in *getResource* on the same *FileResourceLoader* . > [MCHECKSTYLE-238|https://jira.codehaus.org/browse/MCHECKSTYLE-238] and > [MCHECKSTYLE-230|https://jira.codehaus.org/browse/MCHECKSTYLE-230] are > exactly about this situation. Right now the plugin for some reason is marked > as thread safe although it definetly produces exceptions in parallel > multimodule builds. > *DefaultCheckstyleRssGenerator* is a point of attention becaue it is also > singleton instantiated. -- This message was sent by Atlassian JIRA (v6.1.6#6162)