Author: michiel
Date: 2010-03-02 17:58:20 +0100 (Tue, 02 Mar 2010)
New Revision: 41241

Modified:
   
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java
Log:
as long as the mimetype is 'undetermined' we consider it valid. Needed for 
client-side checking. Some clients, are not doing it very well

Modified: 
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java
===================================================================
--- 
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java
      2010-03-02 16:44:00 UTC (rev 41240)
+++ 
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/datatypes/BinaryDataType.java
      2010-03-02 16:58:20 UTC (rev 41241)
@@ -101,7 +101,9 @@
      * @since MMBase-1.9.3
      */
     public MimeType getMimeType(Object value, Node node, Field field) {
-        if (value == null) return MimeType.OCTETSTREAM;
+        if (value == null) {
+            return MimeType.OCTETSTREAM;
+        }
         String mt;
         if (value instanceof byte[]) {
             byte[] array = (byte[]) value;
@@ -116,7 +118,7 @@
             mt = Casting.toSerializableInputStream(value).getContentType();
         }
         if (mt == null || mt.equals(MagicFile.FAILED)) {
-            return MimeType.OCTETSTREAM;
+            return MimeType.UNDETERMINED;
         } else {
             return new MimeType(mt);
         }
@@ -147,7 +149,7 @@
     }
 
     /**
-     * @since MMBase-2.0
+     * @since MMBase-1.9.3
      */
     protected class MimeTypeRestriction extends AbstractRestriction<Pattern> {
         private static final long serialVersionUID = 0L;
@@ -165,6 +167,10 @@
                 return true;
             }
             MimeType s = BinaryDataType.this.getMimeType(v, node, field);
+            if (MimeType.UNDETERMINED.equals(s)) {
+                log.debug("The mime type could not be determined. Giving the 
benefit of the doubt.");
+                return true;
+            }
             boolean res = s == null ? false : 
value.matcher(s.toString()).matches();
             if (log.isDebugEnabled()) {
                 log.debug("VALIDATING " + v + "->" + s + " with " + getValue() 
+ " -> " + res);

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to