Update of 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler
In directory james.mmbase.org:/tmp/cvs-serv20233/typehandler

Modified Files:
        BinaryHandler.java 
Log Message:
MMB-1810


See also: 
http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler
See also: http://www.mmbase.org/jira/browse/MMB-1810


Index: BinaryHandler.java
===================================================================
RCS file: 
/var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/typehandler/BinaryHandler.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- BinaryHandler.java  12 Jan 2009 12:48:20 -0000      1.15
+++ BinaryHandler.java  24 Apr 2009 19:58:44 -0000      1.16
@@ -25,7 +25,7 @@
 import org.mmbase.datatypes.*;
 import javax.servlet.jsp.PageContext;
 import javax.servlet.http.*;
-import org.apache.commons.fileupload.FileItem;
+
 
 /**
  * @javadoc
@@ -33,7 +33,7 @@
  * @author Gerard van de Looi
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8 (was named ByteHandler previously)
- * @version $Id: BinaryHandler.java,v 1.15 2009/01/12 12:48:20 michiel Exp $
+ * @version $Id: BinaryHandler.java,v 1.16 2009/04/24 19:58:44 michiel Exp $
  */
 
 public class BinaryHandler extends AbstractTypeHandler {
@@ -74,11 +74,11 @@
     /**
      * Returns the field value as specified by the client's post.
      */
-    @Override protected Object getFieldValue(Node node, Field field) throws 
JspTagException {
+    @Override
+    protected Object getFieldValue(Node node, Field field) throws 
JspTagException {
         if (MultiPart.isMultipart(tag.getPageContext())) {
             ContextTag ct = tag.getContextTag();
-            FileItem bytes = ct.getFileItem(prefix(field.getName()));
-            return bytes;
+            return ct.getInputStream(prefix(field.getName()));
         } else {
             return null;
         }
@@ -94,7 +94,7 @@
                 // do actually set the field, because some datatypes need 
cross-field checking
                 // also in an mm:form, you can simply commit.
                 if (node != null && ! field.isReadOnly()) {
-                    setValue(node, field.getName(), (FileItem) fieldValue);
+                    setValue(node, field.getName(), (SerializableInputStream) 
fieldValue);
                 }
                 if (errors) {
                     return "<div id=\"" + prefixError(field.getName()) + "\" 
class=\"mm_check_noerror\"> </div>";
@@ -134,13 +134,17 @@
      * @see TypeHandler#useHtmlInput(Node, Field)
      */
     @Override public boolean useHtmlInput(Node node, Field field) throws 
JspTagException {
-        FileItem bytes = (FileItem) getFieldValue(node, field);
-        if (bytes == null){
+        SerializableInputStream bytes = (SerializableInputStream) 
getFieldValue(node, field);
+        if (bytes == null) {
             throw new BridgeException("getBytes(" + prefix(field.getName()) + 
") returned null (node= " +  node.getNumber() +") field=(" + field + ") (Was 
your form  enctype='multipart/form-data' ?");
         }
+        if ("".equals(bytes.getName())) {
+            return false;
+        } else {
         node.setValue(field.getName(), bytes);
         return true;
     }
+    }
 
     /**
      * @see TypeHandler#whereHtmlInput(Field)
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to