Repository: cxf Updated Branches: refs/heads/3.1.x-fixes 84b6266ae -> 048c17bab
Revert "[CXF-7309] Trying to prevent NPE when the providers are hot-redeployed, patch from Ezequiel Rosas Garcia applied" This reverts commit 84b6266ae8bf57067040120fb0336e0480546ec7. Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/048c17ba Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/048c17ba Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/048c17ba Branch: refs/heads/3.1.x-fixes Commit: 048c17baba3ce991fb514ecf782a4299ab5f9747 Parents: 84b6266 Author: Sergey Beryozkin <sberyoz...@gmail.com> Authored: Fri May 26 17:23:50 2017 +0100 Committer: Sergey Beryozkin <sberyoz...@gmail.com> Committed: Fri May 26 17:23:50 2017 +0100 ---------------------------------------------------------------------- .../apache/cxf/jaxrs/utils/InjectionUtils.java | 34 ++++++++------------ .../java/org/apache/cxf/jaxrs/Customer.java | 4 +-- .../apache/cxf/jaxrs/utils/JAXRSUtilsTest.java | 2 +- 3 files changed, 16 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/048c17ba/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java index 9101949..73b3e56 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java @@ -1093,13 +1093,18 @@ public final class InjectionUtils { synchronized (instance) { for (Map.Entry<Class<?>, Method> entry : cri.getContextMethods().entrySet()) { Method method = entry.getValue(); - final Object proxy = extractFromSetter(instance, method); - if (proxy instanceof ThreadLocalProxy) { - continue; - } Object value = method.getParameterTypes()[0] == Application.class - ? app : cri.getContextSetterProxy(method); + ? app : cri.getContextSetterProxy(method); + try { + if (value == InjectionUtils.extractFromMethod(instance, + getGetterFromSetter(method), + false)) { + continue; + } + } catch (Throwable t) { + // continue + } InjectionUtils.injectThroughMethod(instance, method, value); } @@ -1162,12 +1167,10 @@ public final class InjectionUtils { if (!cri.isSingleton()) { InjectionUtils.injectThroughMethod(requestObject, method, o, message); } else { - Object proxy = extractFromSetter(requestObject, method); - if (!(proxy instanceof ThreadLocalProxy)) { - proxy = cri.getContextSetterProxy(method); - } + ThreadLocalProxy<Object> proxy + = (ThreadLocalProxy<Object>)cri.getContextSetterProxy(method); if (proxy != null) { - ((ThreadLocalProxy<Object>) proxy).set(o); + proxy.set(o); } } @@ -1472,15 +1475,4 @@ public final class InjectionUtils { public static Object getEntity(Object o) { return o instanceof GenericEntity ? ((GenericEntity<?>)o).getEntity() : o; } - public static Object extractFromSetter(Object provider, Method m) { - if (provider == null) { - return null; - } - try { - final Method getter = getGetterFromSetter(m); - return extractFromMethod(provider, getter, false); - } catch (Throwable t) { - return null; - } - } } http://git-wip-us.apache.org/repos/asf/cxf/blob/048c17ba/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/Customer.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/Customer.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/Customer.java index 53c7bab..f55fc1d 100644 --- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/Customer.java +++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/Customer.java @@ -273,11 +273,11 @@ public class Customer extends AbstractCustomer implements CustomerInfo { } @Context - public void setServletContext3(ServletContext sc) { + public void setServletContext(ServletContext sc) { servletContext3 = sc; } - public ServletContext getServletContext3() { + public ServletContext getThreadLocalServletContext() { return servletContext3; } http://git-wip-us.apache.org/repos/asf/cxf/blob/048c17ba/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java index a24fd64..04d5455 100644 --- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java +++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java @@ -1817,7 +1817,7 @@ public class JAXRSUtilsTest extends Assert { ((ThreadLocalProxy<Providers>)c.getBodyWorkers()).get().getClass()); assertSame(servletContextMock, - ((ThreadLocalProxy<ServletContext>)c.getServletContext3()).get()); + ((ThreadLocalProxy<ServletContext>)c.getThreadLocalServletContext()).get()); assertSame(servletContextMock, ((ThreadLocalProxy<ServletContext>)c.getServletContext()).get()); assertSame(servletContextMock,