You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2010/04/23 23:52:04 UTC

svn commit: r937535 - /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.triaxrs/org.apache.clerezza.triaxrs/src/main/java/org/apache/clerezza/triaxrs/InjectionUtilities.java

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