Author: hansbak
Date: Wed Jan 30 19:59:59 2008
New Revision: 616995
URL:
http://svn.apache.org/viewvc?rev=616995&view=revLog:
Entity sync did not work for deletes because the timestamps of the deleted record where also checked to be the same as the original record, this however was never true, even not after the copy of the complete database. Now the deleted record is only checked for the primary key.
Modified:
ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncServices.java
Modified: ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncServices.java?rev=616995&r1=616994&r2=616995&view=diff==============================================================================
--- ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncServices.java (original)
+++ ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/synchronization/EntitySyncServices.java Wed Jan 30 19:59:59 2008
@@ -216,8 +216,12 @@
// check to see if it exists, if so remove and count, if not just count already removed
// always do a removeByAnd, if it was a removeByAnd great, if it was a removeByPrimaryKey, this will also work and save us a query
+ // however....removeByAnd also checks for the updateTimestamps....and they never match....so i changed it to remove primary key and only check for the primary key.....(hansbak)
pkToRemove.setIsFromEntitySync(true);
- int numRemByAnd = delegator.removeByAnd(pkToRemove.getEntityName(), pkToRemove);
+
+ // Debug.logInfo("try to remove: " + pkToRemove.getEntityName() + " key: " + pkToRemove.getPrimaryKey(), module);
+
+ int numRemByAnd = delegator.removeByPrimaryKey(pkToRemove.getPrimaryKey());
if (numRemByAnd == 0) {
toRemoveAlreadyDeleted++;
} else {
@@ -234,6 +238,7 @@
result.put("toStoreNotUpdated", new Long(toStoreNotUpdated));
result.put("toRemoveDeleted", new Long(toRemoveDeleted));
result.put("toRemoveAlreadyDeleted", new Long(toRemoveAlreadyDeleted));
+ if (Debug.infoOn()) Debug.logInfo("Finisching storeEntitySyncData (" + entitySyncId + ") - [" + keysToRemove.size() + "] to remove. Actually removed: " + toRemoveDeleted + " already removed: " + toRemoveAlreadyDeleted, module);
return result;
} catch (GenericEntityException e) {
String errorMsg = "Exception saving Entity Sync Data for entitySyncId [" + entitySyncId + "]: " + e.toString();