[ 
https://issues.apache.org/jira/browse/HADOOP-10826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14067209#comment-14067209
 ] 

Alejandro Abdelnur commented on HADOOP-10826:
---------------------------------------------

optionally, you could do a dummy iteration on a static block in the class, then 
services will be loaded the first time they are requested and no need for 
synchronization.

> Iteration on KeyProviderFactory.serviceLoader  is thread-unsafe
> ---------------------------------------------------------------
>
>                 Key: HADOOP-10826
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10826
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: security
>            Reporter: Benoy Antony
>            Assignee: Benoy Antony
>         Attachments: HADOOP-10826.patch, HADOOP-10826.patch
>
>
> KeyProviderFactory uses _ServiceLoader_ framework to load _KeyProviderFactory_
> {code}
>   private static final ServiceLoader<KeyProviderFactory> serviceLoader =
>       ServiceLoader.load(KeyProviderFactory.class);
> {code}
> The _ServiceLoader_ framework does lazy initialization of services which 
> makes it thread unsafe. If accessed from multiple threads, it is better to 
> synchronize the access.
> Similar synchronization has been done while loading compression codec 
> providers via HADOOP-8406.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to