mirror of
https://github.com/etesync/android
synced 2025-08-04 12:55:18 +00:00
Commit after every full record insertion/update (closes #135)
Docs say that TransactionTooLargeException is thrown when the buffer reaches 1 MB. Because we can't know how large a single insertion/update is and there may be contacts with larger photos, it's only safe to commit after every insertion/update. If photos exceed ~ 900 kB it would be required to write the photos to an asset file (maybe I'll do this later, then we can group insertions/updates again).
This commit is contained in:
parent
983214d23b
commit
43cc5c0e7b
@ -174,14 +174,11 @@ public class SyncManager {
|
|||||||
Log.i(TAG, "Fetching " + resourcesToAdd.length + " new remote resource(s)");
|
Log.i(TAG, "Fetching " + resourcesToAdd.length + " new remote resource(s)");
|
||||||
|
|
||||||
for (Resource[] resources : ArrayUtils.partition(resourcesToAdd, MAX_MULTIGET_RESOURCES))
|
for (Resource[] resources : ArrayUtils.partition(resourcesToAdd, MAX_MULTIGET_RESOURCES))
|
||||||
try {
|
for (Resource res : remote.multiGet(resources)) {
|
||||||
for (Resource res : remote.multiGet(resources)) {
|
Log.d(TAG, "Adding " + res.getName());
|
||||||
Log.d(TAG, "Adding " + res.getName());
|
local.add(res);
|
||||||
local.add(res);
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
local.commit();
|
local.commit();
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -191,14 +188,11 @@ public class SyncManager {
|
|||||||
Log.i(TAG, "Fetching " + resourcesToUpdate.length + " updated remote resource(s)");
|
Log.i(TAG, "Fetching " + resourcesToUpdate.length + " updated remote resource(s)");
|
||||||
|
|
||||||
for (Resource[] resources : ArrayUtils.partition(resourcesToUpdate, MAX_MULTIGET_RESOURCES))
|
for (Resource[] resources : ArrayUtils.partition(resourcesToUpdate, MAX_MULTIGET_RESOURCES))
|
||||||
try {
|
for (Resource res : remote.multiGet(resources)) {
|
||||||
for (Resource res : remote.multiGet(resources)) {
|
Log.i(TAG, "Updating " + res.getName());
|
||||||
Log.i(TAG, "Updating " + res.getName());
|
local.updateByRemoteName(res);
|
||||||
local.updateByRemoteName(res);
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
local.commit();
|
local.commit();
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user