syncope-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (SYNCOPE-1448) Bean loading/register section not threadsafe
Date Mon, 18 Mar 2019 07:11:00 GMT


ASF subversion and git services commented on SYNCOPE-1448:

Commit ce62f53a85ff01249489c8c87c11f47cbadef8dc in syncope's branch refs/heads/SYNCOPE-1448_alternative-fix
from Francesco Chicchiriccò
[;h=ce62f53 ]

[SYNCOPE-1448] Relying on Spring's concurrency checks

> Bean loading/register section not threadsafe
> --------------------------------------------
>                 Key: SYNCOPE-1448
>                 URL:
>             Project: Syncope
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.1.3
>            Reporter: longstone
>            Assignee: Francesco Chicchiriccò
>            Priority: Major
>             Fix For: 2.1.4, 3.0.0
> Issue:
> When two threads (T1,T2) arrive the section {{if (ApplicationContextProvider.getBeanFactory().containsSingleton(ruleClass.getName()))
{}}at the same time they will both assume that there is no bean, which is right so far.
> T1 register the bean as it should here {{ApplicationContextProvider.getBeanFactory().registerSingleton(ruleClass.getName(),
rule);}}. As soon as T2does the same, an exception is thrown.
> Solution:
> When T1 and T2 found that a given bean is not there, they'll hit a synchronized section
with double checking. This will prevent the duplicated creation and registration of a bean.

This message was sent by Atlassian JIRA

View raw message