Author: doogie
Date: Thu Oct  7 20:46:28 2010
New Revision: 1005625

URL: http://svn.apache.org/viewvc?rev=1005625&view=rev
Log:
Optimize checkDb() call, to not continually recalculate the tableName.

Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java

Modified: 
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java?rev=1005625&r1=1005624&r2=1005625&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java 
(original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java 
Thu Oct  7 20:46:28 2010
@@ -198,15 +198,16 @@ public class DatabaseUtil {
                 continue;
             }
 
+            String tableName = entity.getTableName(datasourceInfo);
             String entMessage = "(" + timer.timeSinceLast() + "ms) Checking #" 
+ curEnt + "/" + totalEnt +
-                " Entity " + entity.getEntityName() + " with table " + 
entity.getTableName(datasourceInfo);
+                " Entity " + entity.getEntityName() + " with table " + 
tableName;
 
             Debug.logVerbose(entMessage, module);
             if (messages != null) messages.add(entMessage);
 
             // -make sure all entities have a corresponding table
-            if (tableNames.contains(entity.getTableName(datasourceInfo))) {
-                tableNames.remove(entity.getTableName(datasourceInfo));
+            if (tableNames.contains(tableName)) {
+                tableNames.remove(tableName);
 
                 if (colInfo != null) {
                     Map<String, ModelField> fieldColNames = 
FastMap.newInstance();
@@ -216,7 +217,7 @@ public class DatabaseUtil {
                         fieldColNames.put(field.getColName(), field);
                     }
 
-                    Map<String, ColumnCheckInfo> colMap = 
colInfo.get(entity.getTableName(datasourceInfo));
+                    Map<String, ColumnCheckInfo> colMap = 
colInfo.get(tableName);
                     if (colMap != null) {
                         for (ColumnCheckInfo ccInfo: colMap.values()) {
                             // -list all columns that do not have a 
corresponding field
@@ -272,14 +273,14 @@ public class DatabaseUtil {
 
                                     // NOTE: this may need a toUpperCase in 
some cases, keep an eye on it, okay just compare with ignore case
                                     if 
(!ccInfo.typeName.equalsIgnoreCase(typeName)) {
-                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" +
+                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" +
                                             entity.getEntityName() + "] is of 
type [" + ccInfo.typeName + "] in the database, but is defined as type [" +
                                             typeName + "] in the entity 
definition.";
                                         Debug.logError(message, module);
                                         if (messages != null) 
messages.add(message);
                                     }
                                     if (columnSize != -1 && ccInfo.columnSize 
!= -1 && columnSize != ccInfo.columnSize && (columnSize * 3) != 
ccInfo.columnSize) {
-                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" +
+                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" +
                                             entity.getEntityName() + "] has a 
column size of [" + ccInfo.columnSize +
                                             "] in the database, but is defined 
to have a column size of [" + columnSize + "] in the entity definition.";
                                         Debug.logWarning(message, module);
@@ -290,7 +291,7 @@ public class DatabaseUtil {
                                         }
                                     }
                                     if (decimalDigits != -1 && decimalDigits 
!= ccInfo.decimalDigits) {
-                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" +
+                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" +
                                             entity.getEntityName() + "] has a 
decimalDigits of [" + ccInfo.decimalDigits +
                                             "] in the database, but is defined 
to have a decimalDigits of [" + decimalDigits + "] in the entity definition.";
                                         Debug.logWarning(message, module);
@@ -299,25 +300,25 @@ public class DatabaseUtil {
 
                                     // do primary key matching check
                                     if (checkPks && ccInfo.isPk && 
!field.getIsPk()) {
-                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" +
+                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" +
                                             entity.getEntityName() + "] IS a 
primary key in the database, but IS NOT a primary key in the entity definition. 
The primary key for this table needs to be re-created or modified so that this 
column is NOT part of the primary key.";
                                         Debug.logError(message, module);
                                         if (messages != null) 
messages.add(message);
                                     }
                                     if (checkPks && !ccInfo.isPk && 
field.getIsPk()) {
-                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" +
+                                        String message = "WARNING: Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" +
                                             entity.getEntityName() + "] IS NOT 
a primary key in the database, but IS a primary key in the entity definition. 
The primary key for this table needs to be re-created or modified to add this 
column to the primary key. Note that data may need to be added first as a 
primary key column cannot have an null values.";
                                         Debug.logError(message, module);
                                         if (messages != null) 
messages.add(message);
                                     }
                                 } else {
-                                    String message = "Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" + entity.getEntityName() +
+                                    String message = "Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" + 
entity.getEntityName() +
                                         "] has a field type name of [" + 
field.getType() + "] which is not found in the field type definitions";
                                     Debug.logError(message, module);
                                     if (messages != null) 
messages.add(message);
                                 }
                             } else {
-                                String message = "Column [" + 
ccInfo.columnName + "] of table [" + entity.getTableName(datasourceInfo) + "] 
of entity [" + entity.getEntityName() + "] exists in the database but has no 
corresponding field" + ((checkPks && ccInfo.isPk) ? " (and it is a PRIMARY KEY 
COLUMN)" : "");
+                                String message = "Column [" + 
ccInfo.columnName + "] of table [" + tableName + "] of entity [" + 
entity.getEntityName() + "] exists in the database but has no corresponding 
field" + ((checkPks && ccInfo.isPk) ? " (and it is a PRIMARY KEY COLUMN)" : "");
                                 Debug.logWarning(message, module);
                                 if (messages != null) messages.add(message);
                             }
@@ -325,7 +326,7 @@ public class DatabaseUtil {
 
                         // -display message if number of table columns does 
not match number of entity fields
                         if (colMap.size() != entity.getFieldsSize()) {
-                            String message = "Entity [" + 
entity.getEntityName() + "] has " + entity.getFieldsSize() + " fields but table 
[" + entity.getTableName(datasourceInfo) + "] has " + colMap.size() + " 
columns.";
+                            String message = "Entity [" + 
entity.getEntityName() + "] has " + entity.getFieldsSize() + " fields but table 
[" + tableName + "] has " + colMap.size() + " columns.";
                             Debug.logWarning(message, module);
                             if (messages != null) messages.add(message);
                         }
@@ -344,11 +345,11 @@ public class DatabaseUtil {
                             String errMsg = addColumn(entity, field);
 
                             if (UtilValidate.isNotEmpty(errMsg)) {
-                                message = "Could not add column [" + 
field.getColName() + "] to table [" + entity.getTableName(datasourceInfo) + "]: 
" + errMsg;
+                                message = "Could not add column [" + 
field.getColName() + "] to table [" + tableName + "]: " + errMsg;
                                 Debug.logError(message, module);
                                 if (messages != null) messages.add(message);
                             } else {
-                                message = "Added column [" + 
field.getColName() + "] to table [" + entity.getTableName(datasourceInfo) + "]" 
+ (field.getIsPk() ? " (NOTE: this is a PRIMARY KEY FIELD, but the primary key 
was not updated automatically (not considered a safe operation), be sure to 
fill in any needed data and re-create the primary key)" : "");
+                                message = "Added column [" + 
field.getColName() + "] to table [" + tableName + "]" + (field.getIsPk() ? " 
(NOTE: this is a PRIMARY KEY FIELD, but the primary key was not updated 
automatically (not considered a safe operation), be sure to fill in any needed 
data and re-create the primary key)" : "");
                                 Debug.logImportant(message, module);
                                 if (messages != null) messages.add(message);
                             }
@@ -364,12 +365,12 @@ public class DatabaseUtil {
                     // create the table
                     String errMsg = createTable(entity, modelEntities, false);
                     if (UtilValidate.isNotEmpty(errMsg)) {
-                        message = "Could not create table [" + 
entity.getTableName(datasourceInfo) + "]: " + errMsg;
+                        message = "Could not create table [" + tableName + "]: 
" + errMsg;
                         Debug.logError(message, module);
                         if (messages != null) messages.add(message);
                     } else {
                         entitiesAdded.add(entity);
-                        message = "Created table [" + 
entity.getTableName(datasourceInfo) + "]";
+                        message = "Created table [" + tableName + "]";
                         Debug.logImportant(message, module);
                         if (messages != null) messages.add(message);
                     }


Reply via email to