[
https://issues.apache.org/jira/browse/SLING-2743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ian Boston updated SLING-2743:
------------------------------
Attachment: SLING-2743.patch
Potential fix.
> Activator.getLoginModules in Jackrabbit server bundle should be synchronized
> ----------------------------------------------------------------------------
>
> Key: SLING-2743
> URL: https://issues.apache.org/jira/browse/SLING-2743
> Project: Sling
> Issue Type: Bug
> Components: JCR
> Affects Versions: JCR Jackrabbit Server 2.1.0
> Reporter: Ian Boston
> Assignee: Ian Boston
> Attachments: SLING-2743.patch
>
>
> Findbugs is reporting that the initialization of the static moduleCache,
> loginModuleTracker is unsafe in a threaded environment. The method should
> probably be synchronized to ensure that only one thread accesses the method
> at a time.
> FindBug Report:
> Bug: Incorrect lazy initialization and update of static field
> org.apache.sling.jcr.jackrabbit.server.impl.Activator.moduleCache in
> org.apache.sling.jcr.jackrabbit.server.impl.Activator.getLoginModules()
> This method contains an unsynchronized lazy initialization of a static field.
> After the field is set, the object stored into that location is further
> updated or accessed. The setting of the field is visible to other threads as
> soon as it is set. If the futher accesses in the method that set the field
> serve to initialize the object, then you have a very serious multithreading
> bug, unless something else prevents any other thread from accessing the
> stored object until it is fully initialized.
> Even if you feel confident that the method is never called by multiple
> threads, it might be better to not set the static field until the value you
> are setting it to is fully populated/initialized.
> Confidence: High, Rank: Scary (6)
> Pattern: LI_LAZY_INIT_UPDATE_STATIC
> Type: LI, Category: MT_CORRECTNESS (Multithreaded correctness)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira