[cvs] expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui DefaultAutoElement.java

JCorporate Ltd jcorp at jcorp2.servlets.net
Wed Jun 2 12:32:08 PDT 2004


Update of /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui
In directory jcorp2.servlets.net:/tmp/cvs-serv10034/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui

Modified Files:
	DefaultAutoElement.java 
Log Message:
add special case for numeric type: preserve 'isFieldNull()' status when numeric field <- empty string (important for DBMaint)


Index: DefaultAutoElement.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/services/controller/ui/DefaultAutoElement.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** DefaultAutoElement.java	19 May 2004 05:01:43 -0000	1.48
--- DefaultAutoElement.java	2 Jun 2004 19:32:06 -0000	1.49
***************
*** 760,763 ****
--- 760,782 ----
                          dbobj.set(fieldName, oneParameter);
                      }
+                 } else if (metaData.isNumericType()) {
+                     /*
+                     Numeric fields are a bit special, because DBObject.getFieldInt()
+                     will return zero if the field is null, and will throw an exception
+                     for "". getFieldInt() javadoc tells people to check
+                     DBObject.isFieldNull() for a numeric field to know whether the zero
+                     is real or not.
+ 
+                     DBObject.isFieldNull() will NOT return true after the empty string
+                     is put into a field.
+ 
+                     */
+ 
+                     if ( oneParameter !=null && oneParameter.length() == 0) {
+                         dbobj.set(fieldName, null);
+                     } else {
+                         dbobj.set(fieldName, oneParameter);
+                     }
+ 
                  } else {
  //                    String lookupObject = metaData.getLookupObject();



More information about the cvs mailing list