Author: michiel Date: 2009-12-01 18:57:16 +0100 (Tue, 01 Dec 2009) New Revision: 40070
Modified: mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BasicDataType.java mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java Log: avoid casting the same value twice. That's bad, especially for binaries. Modified: mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BasicDataType.java =================================================================== --- mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BasicDataType.java 2009-12-01 17:55:39 UTC (rev 40069) +++ mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BasicDataType.java 2009-12-01 17:57:16 UTC (rev 40070) @@ -555,6 +555,9 @@ errors = typeRestriction.addError(errors, value, node, field); castValue = value; } + if (log.isDebugEnabled()) { + log.debug("Validating cast value" + castValue); + } //System.out.println("" + value + " -> " + castValue + " (" + errors); if (errors.size() > 0) { @@ -571,7 +574,7 @@ return errors; // null is valid, unless required. } if (testEnum) { - errors = enumerationRestriction.validate(errors, value, node, field); + errors = enumerationRestriction.validate(errors, castValue, node, field); } errors = uniqueRestriction.validate(errors, castValue, node, field); errors = validateCastValue(errors, castValue, value, node, field); @@ -1325,6 +1328,7 @@ if(!isRequired()) return true; return v != null; } + } // UNIQUE Modified: mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java =================================================================== --- mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java 2009-12-01 17:55:39 UTC (rev 40069) +++ mmbase/trunk/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java 2009-12-01 17:57:16 UTC (rev 40070) @@ -12,6 +12,8 @@ import org.mmbase.util.logging.*; import org.mmbase.util.SerializableInputStream; import org.mmbase.bridge.*; +import org.mmbase.util.*; +import java.util.Collection; import java.io.InputStream; import java.util.regex.Pattern; import org.apache.commons.fileupload.FileItem; @@ -64,6 +66,9 @@ @Override public long getLength(Object value) { if (value == null) return 0; + if (log.isDebugEnabled()) { + log.debug("Finding lenth for " + value); + } if (value instanceof byte[]) { byte[] bytes = (byte[]) value; if (log.isDebugEnabled()) { @@ -89,6 +94,10 @@ } } + @Override + protected Collection<LocalizedString> validateRequired(Collection<LocalizedString> errors, Object castValue, Object value, Node node, Field field) { + return requiredRestriction.validate(errors, castValue, node, field); + } /** _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs