[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