[ 
https://issues.apache.org/jira/browse/SYNCOPE-1448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francesco Chicchiriccò reassigned SYNCOPE-1448:
-----------------------------------------------

             Assignee: Francesco Chicchiriccò
    Affects Version/s: 2.1.3
        Fix Version/s: 3.0.0
                       2.1.4

> Bean loading/register section not threadsafe
> --------------------------------------------
>
>                 Key: SYNCOPE-1448
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-1448
>             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
(v7.6.3#76005)

Reply via email to