[ 
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)

Reply via email to