Update of /var/cvs/src/org/mmbase/bridge/implementation
In directory james.mmbase.org:/tmp/cvs-serv4373
Modified Files:
Tag: MMBase-1_8
BasicNodeManager.java
Log Message:
string values are implicitely set to ''
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/implementation
Index: BasicNodeManager.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/bridge/implementation/BasicNodeManager.java,v
retrieving revision 1.121.2.5
retrieving revision 1.121.2.6
diff -u -b -r1.121.2.5 -r1.121.2.6
--- BasicNodeManager.java 6 Jun 2008 14:37:56 -0000 1.121.2.5
+++ BasicNodeManager.java 9 Jun 2008 11:06:00 -0000 1.121.2.6
@@ -38,7 +38,7 @@
* @author Rob Vermeulen
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: BasicNodeManager.java,v 1.121.2.5 2008/06/06 14:37:56 michiel
Exp $
+ * @version $Id: BasicNodeManager.java,v 1.121.2.6 2008/06/09 11:06:00 michiel
Exp $
*/
public class BasicNodeManager extends BasicNode implements NodeManager,
Comparable {
@@ -226,7 +226,7 @@
// create object as a temporary node
int id = BasicCloud.uniqueId();
{
- String currentObjectContext =
BasicCloudContext.tmpObjectManager.createTmpNode(getMMObjectBuilder().getTableName(),
cloud.getAccount(), ""+id);
+ String currentObjectContext =
BasicCloudContext.tmpObjectManager.createTmpNode(getMMObjectBuilder().getTableName(),
cloud.getAccount(), "" + id);
// if we are in a transaction, add the node to the transaction;
cloud.add(currentObjectContext);
}
@@ -248,6 +248,7 @@
* @since MMBase-1.8.6
*/
protected void setDefaultsWithCloud(MMObjectNode node) {
+ log.debug("Setting default values");
for (Iterator i = getFields().iterator(); i.hasNext(); ) {
Field field = (Field) i.next();
if (field.isVirtual()) continue;
@@ -255,11 +256,17 @@
if (field.getName().equals(MMObjectBuilder.FIELD_OWNER))
continue;
if (field.getName().equals(MMObjectBuilder.FIELD_OBJECT_TYPE))
continue;
- if (node.isNull(field.getName())) {
+
+ if (node.isNull(field.getName()) ||
"".equals(node.getStringValue(field.getName()))) { // required field are set to
'', which would destroy the default value...
+
org.mmbase.datatypes.DataType dt = field.getDataType();
//log.info("" + field.getName() + " " + dt);
Object defaultValue =
dt.getDefaultValue(getCloud().getLocale(), getCloud(), field);
node.setValue(field.getName(), defaultValue);
+ } else {
+ if (Log.isDebugEnabled()) {
+ log.debug("" + field.getName() + " is already non null,
but " + node.getValue(field.getName()));
+ }
}
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs