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.");


Reply via email to