Author: reto
Date: Fri Apr 23 21:52:04 2010
New Revision: 937535
URL: http://svn.apache.org/viewvc?rev=937535&view=rev
Log:
setting only fields for which a non-null value is available
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/InjectionUtilities.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/InjectionUtilities.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/InjectionUtilities.java?rev=937535&r1=937534&r2=937535&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/InjectionUtilities.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/InjectionUtilities.java
Fri Apr 23 21:52:04 2010
@@ -25,7 +25,9 @@ import java.lang.reflect.InvocationTarge
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import javax.ws.rs.CookieParam;
@@ -298,19 +300,21 @@ public class InjectionUtilities {
if (as.length == 0) {
continue;
}
+
boolean encodingDisabledForField = encodingDisabled ||
(fields[i].getAnnotation(
Encoded.class) != null);
Object fieldValue =
getInjectionValueForAnnotation(request,
pathParams, providers, as,
fields[i].getType(),
encodingDisabledForField);
-
- try {
- fields[i].set(instance, fieldValue);
- } catch (IllegalAccessException iae) {
- throw new HandlerException(iae);
+ if (fieldValue != null) {
+ try {
+ fields[i].set(instance, fieldValue);
+ } catch (IllegalAccessException iae) {
+ throw new HandlerException("setting
"+fields[i]+" to "+fieldValue, iae);
+ }
+ logger.debug("set field value: {} to {}",
fields[i], fieldValue);
}
- logger.debug("set field value: {} to {}", fields[i],
fieldValue);
}
logger.debug("Fields checked.");