Repository: cxf Updated Branches: refs/heads/2.7.x-fixes 98cef3943 -> 8c34d25a2
Synchronizing an access to JAX-RS ProviderFactory injectedProviders list in 2.7.x Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/8c34d25a Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/8c34d25a Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/8c34d25a Branch: refs/heads/2.7.x-fixes Commit: 8c34d25a25e5dbafcffa9a9062f7fa72478f6510 Parents: 98cef39 Author: Sergey Beryozkin <sberyoz...@talend.com> Authored: Fri Nov 14 10:28:15 2014 +0000 Committer: Sergey Beryozkin <sberyoz...@talend.com> Committed: Fri Nov 14 10:28:15 2014 +0000 ---------------------------------------------------------------------- .../org/apache/cxf/jaxrs/provider/ProviderFactory.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/8c34d25a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java index ee91720..b9ecbd4 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java @@ -910,7 +910,9 @@ public final class ProviderFactory { void injectContextProxiesIntoProvider(ProviderInfo<?> pi) { if (pi.contextsAvailable()) { InjectionUtils.injectContextProxies(pi, pi.getProvider()); - injectedProviders.add(pi); + synchronized (injectedProviders) { + injectedProviders.add(pi); + } } } @@ -1153,8 +1155,10 @@ public final class ProviderFactory { void clearProxies(Collection<?> ...lists) { for (Collection<?> list : lists) { Collection<ProviderInfo<?>> l2 = CastUtils.cast(list); - for (ProviderInfo<?> pi : l2) { - pi.clearThreadLocalProxies(); + synchronized (l2) { + for (ProviderInfo<?> pi : l2) { + pi.clearThreadLocalProxies(); + } } } }