You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2014/02/06 17:48:56 UTC
svn commit: r1565339 - in
/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs:
model/AbstractResourceInfo.java utils/InjectionUtils.java
Author: sergeyb
Date: Thu Feb 6 16:48:56 2014
New Revision: 1565339
URL: http://svn.apache.org/r1565339
Log:
Preventing the error reporting when checking for getters on JAX-RS providers
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java?rev=1565339&r1=1565338&r2=1565339&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java Thu Feb 6 16:48:56 2014
@@ -156,8 +156,9 @@ public abstract class AbstractResourceIn
Object proxy = null;
synchronized (provider) {
try {
- Method getter = m.getClass().getMethod("get" + m.getName().substring(3), new Class[]{});
- proxy = InjectionUtils.extractFromMethod(provider, getter);
+ proxy = InjectionUtils.extractFromMethod(provider,
+ InjectionUtils.getGetterFromSetter(m),
+ false);
} catch (Throwable t) {
// continue
}
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?rev=1565339&r1=1565338&r2=1565339&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java Thu Feb 6 16:48:56 2014
@@ -316,15 +316,20 @@ public final class InjectionUtils {
}
}
+ public static Object extractFromMethod(Object requestObject, Method method) {
+ return extractFromMethod(requestObject, method, true);
+ }
+
public static Object extractFromMethod(Object requestObject,
- Method method) {
+ Method method,
+ boolean logError) {
try {
Method methodToInvoke = checkProxy(method, requestObject);
return methodToInvoke.invoke(requestObject);
} catch (IllegalAccessException ex) {
- reportServerError("METHOD_ACCESS_FAILURE", method.getName());
+ reportServerError("METHOD_ACCESS_FAILURE", method.getName(), logError);
} catch (Exception ex) {
- reportServerError("METHOD_INJECTION_FAILURE", method.getName());
+ reportServerError("METHOD_INJECTION_FAILURE", method.getName(), logError);
}
return null;
}
@@ -446,11 +451,17 @@ public final class InjectionUtils {
}
public static void reportServerError(String messageName, String parameter) {
+ reportServerError(messageName, parameter, true);
+ }
+
+ public static void reportServerError(String messageName, String parameter, boolean logError) {
org.apache.cxf.common.i18n.Message errorMessage =
new org.apache.cxf.common.i18n.Message(messageName,
BUNDLE,
parameter);
- LOG.severe(errorMessage.toString());
+ if (logError) {
+ LOG.severe(errorMessage.toString());
+ }
Response r = Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.type(MediaType.TEXT_PLAIN_TYPE)
.entity(errorMessage.toString()).build();
@@ -971,6 +982,10 @@ public final class InjectionUtils {
}
}
+ public static Method getGetterFromSetter(Method setter) throws Exception {
+ return setter.getClass().getMethod("get" + setter.getName().substring(3), new Class[]{});
+ }
+
public static void injectContextProxiesAndApplication(AbstractResourceInfo cri,
Object instance,
Application app) {
@@ -984,7 +999,9 @@ public final class InjectionUtils {
? app : cri.getContextSetterProxy(method);
try {
synchronized (instance) {
- if (value == InjectionUtils.extractFromMethod(instance, method)) {
+ if (value == InjectionUtils.extractFromMethod(instance,
+ getGetterFromSetter(method),
+ false)) {
continue;
}
}