Update of /var/cvs/src/org/mmbase/module/core In directory james.mmbase.org:/tmp/cvs-serv1599
Modified Files: MMObjectNode.java Log Message: binaries are sometimes stored as inputstream in mmobjectnode, mmobjectnode is serializable See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/module/core Index: MMObjectNode.java =================================================================== RCS file: /var/cvs/src/org/mmbase/module/core/MMObjectNode.java,v retrieving revision 1.222 retrieving revision 1.223 diff -u -b -r1.222 -r1.223 --- MMObjectNode.java 3 Jul 2008 15:53:58 -0000 1.222 +++ MMObjectNode.java 8 Jul 2008 07:37:10 -0000 1.223 @@ -21,9 +21,7 @@ import org.mmbase.storage.search.*; import org.mmbase.storage.search.implementation.NodeSearchQuery; import org.mmbase.storage.search.implementation.BasicFieldValueConstraint; -import org.mmbase.util.Casting; -import org.mmbase.util.SizeOf; -import org.mmbase.util.DynamicDate; +import org.mmbase.util.*; import org.mmbase.util.logging.*; import org.mmbase.util.functions.*; import org.w3c.dom.Document; @@ -40,10 +38,10 @@ * @author Eduard Witteveen * @author Michiel Meeuwissen * @author Ernst Bunders - * @version $Id: MMObjectNode.java,v 1.222 2008/07/03 15:53:58 michiel Exp $ + * @version $Id: MMObjectNode.java,v 1.223 2008/07/08 07:37:10 michiel Exp $ */ -public class MMObjectNode implements org.mmbase.util.SizeMeasurable, java.io.Serializable { +public class MMObjectNode implements org.mmbase.util.SizeMeasurable, java.io.Serializable { // Comparable<MMObjectNode> { private static final Logger log = Logging.getLoggerInstance(MMObjectNode.class); @@ -464,7 +462,7 @@ */ protected Object checkSerializable(String fieldName, Object fieldValue) { if (fieldValue != null && (! (fieldValue instanceof Serializable))) { - log.warn("Value for " + fieldName + " is not serializable: " + fieldValue, new Exception()); + log.warn("Value for " + fieldName + " is not serializable: " + fieldValue.getClass() + " " + fieldValue, new Exception()); } return fieldValue; } @@ -484,6 +482,9 @@ // This is just a hack to make app1 import/export working, withough exposing the values map. values.remove(fieldName); } + if (fieldValue != null && (fieldValue instanceof InputStream)) { + fieldValue = new SerializableInputStream((InputStream) fieldValue); + } fieldValue = checkSerializable(fieldName, fieldValue); if (checkFieldExistance(fieldName)) { values.put(fieldName, fieldValue); @@ -843,17 +844,7 @@ * @since MMBase-1.8 */ private byte[] useInputStream(String fieldName, InputStream stream) { // first, convert to byte-array - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - try { - byte[] buf = new byte[1024]; - int n; - while ((n = stream.read(buf)) > -1) { - bos.write(buf, 0, n); - } - } catch (IOException ioe) { - log.error(ioe); - } - byte[] b = bos.toByteArray(); + byte[] b = SerializableInputStream.toByteArray(stream); // check if we can cache it. BlobCache blobs = parent.getBlobCache(fieldName); String key = blobs.getKey(getNumber(), fieldName); @@ -1861,4 +1852,8 @@ aliases = (Set<String>)in.readObject(); newContext = (String)in.readObject(); } + + public int compareTo(MMObjectNode n) { + return getNumber() - n.getNumber(); + } } _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs