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

Modified Files:
      Tag: MMBase-1_8
        DatabaseStorageManager.java 
Log Message:
I think the check for size should have been something like this
DayanaseSize is now checked and not the BuilderSize


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.15
retrieving revision 1.169.2.16
diff -u -b -r1.169.2.15 -r1.169.2.16
--- DatabaseStorageManager.java 4 Dec 2008 11:23:14 -0000       1.169.2.15
+++ DatabaseStorageManager.java 11 Feb 2009 20:42:04 -0000      1.169.2.16
@@ -32,7 +32,7 @@
  *
  * @author Pierre van Rooden
  * @since MMBase-1.7
- * @version $Id: DatabaseStorageManager.java,v 1.169.2.15 2008/12/04 11:23:14 
nklasens Exp $
+ * @version $Id: DatabaseStorageManager.java,v 1.169.2.16 2009/02/11 20:42:04 
nklasens Exp $
  */
 public class DatabaseStorageManager implements StorageManager {
 
@@ -2488,17 +2488,19 @@
                             }
                         }
                         // compare size
-                        int size = 
((Integer)colInfo.get("COLUMN_SIZE")).intValue();
-                        int cursize = field.getMaxLength();
+                        int databaseSize = 
((Integer)colInfo.get("COLUMN_SIZE")).intValue();
+                        int builderFieldSize = field.getMaxLength();
                         // ignore the size difference for large fields 
(generally blobs or memo texts)
                         // since most databases do not return accurate sizes 
for these fields
-                        if (cursize != -1 && size > 0 && size != cursize && 
cursize <= 255) {
-                            if (size < cursize) {
+                        boolean isBuilderFieldSizeDefined = builderFieldSize 
!= -1;
+                        if (isBuilderFieldSizeDefined  && databaseSize > 0 && 
databaseSize <= 4096
+                              && databaseSize != builderFieldSize) {
+                            if (databaseSize < builderFieldSize) {
                                 // only correct if storage is more restrictive
-                                field.setMaxLength(size);
-                                log.warn("VERIFY: Field '" + field.getName() + 
"' of builder '" + builder.getTableName() + "' mismatch : size defined as " + 
cursize + ", but in storage " + size + " (value corrected for this session)");
+                                field.setMaxLength(databaseSize);
+                                log.warn("VERIFY: Field '" + field.getName() + 
"' of builder '" + builder.getTableName() + "' mismatch : size defined as " + 
builderFieldSize + ", but in storage " + databaseSize + " (value corrected for 
this session)");
                             } else {
-                                log.debug("VERIFY: Field '" + field.getName() 
+ "' of builder '" + builder.getTableName() + "' mismatch : size defined as " + 
cursize + ", but in storage " + size);
+                                log.debug("VERIFY: Field '" + field.getName() 
+ "' of builder '" + builder.getTableName() + "' mismatch : size defined as " + 
builderFieldSize + ", but in storage " + databaseSize);
                             }
                         }
                         columns.remove(id);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to