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