maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Konstantin Pokrovsky (JIRA)" <j...@codehaus.org>
Subject [jira] (MCHECKSTYLE-244) LicenseResourceManager component is not thread safe and causes parallel build failures
Date Fri, 01 Aug 2014 19:54:10 GMT

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

Mime
View raw message