Author: jonesde
Date: Mon Sep 3 13:22:51 2007 New Revision: 572413 URL: http://svn.apache.org/viewvc?rev=572413&view=rev Log: Small format change only in TransactionUtil; in EntityDataAssert fixed a couple of NPE cases and improved to make much more robust Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataAssert.java Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java?rev=572413&r1=572412&r2=572413&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/transaction/TransactionUtil.java Mon Sep 3 13:22:51 2007 @@ -313,7 +313,7 @@ try { if (TransactionUtil.getStatus() == TransactionUtil.STATUS_ACTIVE) { TransactionManager txMgr = TransactionFactory.getTransactionManager(); - if (txMgr != null ) { + if (txMgr != null) { pushTransactionBeginStackSave(clearTransactionBeginStack()); pushSetRollbackOnlyCauseSave(clearSetRollbackOnlyCause()); Transaction trans = txMgr.suspend(); Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataAssert.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataAssert.java?rev=572413&r1=572412&r2=572413&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataAssert.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataAssert.java Mon Sep 3 13:22:51 2007 @@ -82,31 +82,51 @@ } public static void checkSingleValue(GenericValue checkValue, GenericDelegator delegator, List errorMessages) throws GenericEntityException { - // to check get the PK, find by that, compare all fields - GenericPK checkPK = checkValue.getPrimaryKey(); - GenericValue currentValue = delegator.findByPrimaryKey(checkPK); - if (currentValue == null) { - errorMessages.add("Entity [" + checkPK.getEntityName() + "] record not found for pk: " + checkPK); + if (checkValue == null) { + errorMessages.add("Got a value to check was null"); + return; } - - ModelEntity modelEntity = currentValue.getModelEntity(); - List nonpkFieldNameList = modelEntity.getNoPkFieldNames(); - Iterator nonpkFieldNameIter = nonpkFieldNameList.iterator(); - while (nonpkFieldNameIter.hasNext()) { - String nonpkFieldName = (String) nonpkFieldNameIter.next(); - // skip the fields the entity engine maintains - if (ModelEntity.CREATE_STAMP_FIELD.equals(nonpkFieldName) || ModelEntity.CREATE_STAMP_TX_FIELD.equals(nonpkFieldName) || - ModelEntity.STAMP_FIELD.equals(nonpkFieldName) || ModelEntity.STAMP_TX_FIELD.equals(nonpkFieldName)) { - continue; + // to check get the PK, find by that, compare all fields + GenericPK checkPK = null; + + try { + checkPK = checkValue.getPrimaryKey(); + GenericValue currentValue = delegator.findByPrimaryKey(checkPK); + if (currentValue == null) { + errorMessages.add("Entity [" + checkPK.getEntityName() + "] record not found for pk: " + checkPK); + return; } - - Object checkField = checkValue.get(nonpkFieldName); - Object currentField = currentValue.get(nonpkFieldName); - if (checkField != null && !checkField.equals(currentField)) { - errorMessages.add("Field [" + modelEntity.getEntityName() + "." + nonpkFieldName + - "] did not match; file value [" + checkField + "], db value [" + currentField + "] pk [" + checkPK + "]"); + ModelEntity modelEntity = checkValue.getModelEntity(); + List nonpkFieldNameList = modelEntity.getNoPkFieldNames(); + Iterator nonpkFieldNameIter = nonpkFieldNameList.iterator(); + while (nonpkFieldNameIter.hasNext()) { + String nonpkFieldName = (String) nonpkFieldNameIter.next(); + // skip the fields the entity engine maintains + if (ModelEntity.CREATE_STAMP_FIELD.equals(nonpkFieldName) || ModelEntity.CREATE_STAMP_TX_FIELD.equals(nonpkFieldName) || + ModelEntity.STAMP_FIELD.equals(nonpkFieldName) || ModelEntity.STAMP_TX_FIELD.equals(nonpkFieldName)) { + continue; + } + + Object checkField = checkValue.get(nonpkFieldName); + Object currentField = currentValue.get(nonpkFieldName); + + if (checkField != null && !checkField.equals(currentField)) { + errorMessages.add("Field [" + modelEntity.getEntityName() + "." + nonpkFieldName + + "] did not match; file value [" + checkField + "], db value [" + currentField + "] pk [" + checkPK + "]"); + } + } + } catch (GenericEntityException e) { + throw e; + } catch (Throwable t) { + String errMsg; + if (checkPK == null) { + errMsg = "Error checking value [" + checkValue + "]: " + t.toString(); + } else { + errMsg = "Error checking entity [" + checkPK.getEntityName() + "] with pk [" + checkPK.getAllFields() + "]: " + t.toString(); } + errorMessages.add(errMsg); + Debug.logError(t, errMsg, module); } } } |
Free forum by Nabble | Edit this page |