Author: jleroux
Date: Thu Dec 22 14:17:31 2011 New Revision: 1222245 URL: http://svn.apache.org/viewvc?rev=1222245&view=rev Log: A modified patch from Patrick Antivackis "Null values are not synchronized in http mode" https://issues.apache.org/jira/browse/OFBIZ-4602 In order to send over http the values to create, store and remove, Ofbiz is Xml serializing the values. GenericValue xml serialization is managed in GenericEntity.makeXmlElement, unfortunately this method just don't serialized null valued fields. To solve this issue, I managed null value the same way GenericEntity.setString (which is used for the Xml deserializing). I only managed until case 10, because i'm not sure the setString for the cases 11 to 15 are well managed (not taking care of null value) jleroux: After looking at GenericEntity.setString and initial commit (http://svn.ofbiz.org/viewcvs?rev=7779&view=rev) I see no reasons to not handling cases under 10 the same way. So I added these cases as well using fall through. Modified: ofbiz/branches/release4.0/ (props changed) ofbiz/branches/release4.0/framework/entity/src/org/ofbiz/entity/GenericEntity.java Propchange: ofbiz/branches/release4.0/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Dec 22 14:17:31 2011 @@ -1 +1 @@ -/ofbiz/trunk:536399,539836-539837,618970,627900,629279,674173,676162,676227,676246,679704,690644,705862,706035,706055,706067,706692,721839,721887,728935,737443,738870,741491,808792,814731,827730,890245,942884,943168,954956,958343,958514,965916,967098,980935,981123 +/ofbiz/trunk:536399,539836-539837,618970,627900,629279,674173,676162,676227,676246,679704,690644,705862,706035,706055,706067,706692,721839,721887,728935,737443,738870,741491,808792,814731,827730,890245,942884,943168,954956,958343,958514,965916,967098,980935,981123,1222105 Modified: ofbiz/branches/release4.0/framework/entity/src/org/ofbiz/entity/GenericEntity.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release4.0/framework/entity/src/org/ofbiz/entity/GenericEntity.java?rev=1222245&r1=1222244&r2=1222245&view=diff ============================================================================== --- ofbiz/branches/release4.0/framework/entity/src/org/ofbiz/entity/GenericEntity.java (original) +++ ofbiz/branches/release4.0/framework/entity/src/org/ofbiz/entity/GenericEntity.java Thu Dec 22 14:17:31 2011 @@ -945,6 +945,42 @@ public class GenericEntity extends Obser element.setAttribute(name, value); } } + else { + ModelFieldType type = null; + try { + type = getDelegator().getEntityFieldType(getModelEntity(), modelField.getType()); + } catch (GenericEntityException e) { + Debug.logWarning(e, module); + } + if (type == null) throw new IllegalArgumentException("Type " + modelField.getType() + " not found"); + String fieldType = type.getJavaType(); + + try { + switch (SqlJdbcUtil.getType(fieldType)) { + case 1: // String + set(name, ""); + break; + case 2: // Timestamp + case 3: // Time + case 4: // java.sql.Date + case 5: // Integer + case 6: // Long + case 7: // Float + case 8: // Double + case 9: // BigDecimal + case 10:// Boolean + case 11:// Object + case 12:// Blob, byte[], ByteBuffer, HeapByteBuffer + case 13:// Clob + case 14:// java.util.Date + case 15:// Collection: ArrayList, HashSet, LinkedHashSet, LinkedList + element.setAttribute(name, "null"); + break; + } + } catch (GenericNotImplementedException ex) { + throw new IllegalArgumentException(ex.getMessage()); + } + } } return element; |
Free forum by Nabble | Edit this page |