Update of /var/cvs/src/org/mmbase/storage/implementation/database
In directory 
james.mmbase.org:/tmp/cvs-serv6316/src/org/mmbase/storage/implementation/database

Modified Files:
      Tag: MMBase-1_8
        DatabaseStorageManager.java 
Log Message:
tinyint is a valid dbtype for a boolean (mysql uses it). Also added a catch for 
invalid (corrupt) nodes in the convertLegacyBinaryFiles method


See also: 
http://cvs.mmbase.org/viewcvs/src/org/mmbase/storage/implementation/database


Index: DatabaseStorageManager.java
===================================================================
RCS file: 
/var/cvs/src/org/mmbase/storage/implementation/database/DatabaseStorageManager.java,v
retrieving revision 1.169.2.11
retrieving revision 1.169.2.12
diff -u -b -r1.169.2.11 -r1.169.2.12
--- DatabaseStorageManager.java 11 Apr 2008 15:18:30 -0000      1.169.2.11
+++ DatabaseStorageManager.java 8 Jul 2008 11:07:33 -0000       1.169.2.12
@@ -32,7 +32,7 @@
  *
  * @author Pierre van Rooden
  * @since MMBase-1.7
- * @version $Id: DatabaseStorageManager.java,v 1.169.2.11 2008/04/11 15:18:30 
nklasens Exp $
+ * @version $Id: DatabaseStorageManager.java,v 1.169.2.12 2008/07/08 11:07:33 
pierre Exp $
  */
 public class DatabaseStorageManager implements StorageManager {
 
@@ -2289,7 +2289,6 @@
         switch (jdbcType) {
         case Types.INTEGER :
         case Types.SMALLINT :
-        case Types.TINYINT :
             if (mmbaseType == Field.TYPE_INTEGER || mmbaseType == 
Field.TYPE_NODE) {
                 return mmbaseType;
             } else {
@@ -2301,6 +2300,12 @@
             } else {
                 return Field.TYPE_LONG;
             }
+        case Types.TINYINT :
+            if (mmbaseType == Field.TYPE_INTEGER || mmbaseType == 
Field.TYPE_BOOLEAN) {
+                return mmbaseType;
+            } else {
+                return Field.TYPE_INTEGER;
+            }
         case Types.FLOAT :
         case Types.REAL :
             return Field.TYPE_FLOAT;
@@ -2854,7 +2859,10 @@
                                         int number = numbers.getInt("number");
                                         log.debug("Processing " + tableName + 
" " + number);
                                         MMObjectNode node = 
builder.getNode(number);
-                                        //MMObjectNode node = 
(MMObjectNode)i.next();
+                                        if (node == null) {
+                                           log.warn("Database inconsistency 
for node with number: " + number);
+                                           continue;
+                                        }
                                         File storeFile = getBinaryFile(node, 
fieldName);
                                         if (!storeFile.exists()) { // not 
found!
                                             File legacyFile = 
getLegacyBinaryFile(node, fieldName);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to