mirror of
https://github.com/etesync/android
synced 2024-11-22 16:08:13 +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)");
|
||||
|
||||
for (Resource[] resources : ArrayUtils.partition(resourcesToAdd, MAX_MULTIGET_RESOURCES))
|
||||
try {
|
||||
for (Resource res : remote.multiGet(resources)) {
|
||||
Log.d(TAG, "Adding " + res.getName());
|
||||
local.add(res);
|
||||
count++;
|
||||
}
|
||||
} finally {
|
||||
for (Resource res : remote.multiGet(resources)) {
|
||||
Log.d(TAG, "Adding " + res.getName());
|
||||
local.add(res);
|
||||
local.commit();
|
||||
count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
@ -191,14 +188,11 @@ public class SyncManager {
|
||||
Log.i(TAG, "Fetching " + resourcesToUpdate.length + " updated remote resource(s)");
|
||||
|
||||
for (Resource[] resources : ArrayUtils.partition(resourcesToUpdate, MAX_MULTIGET_RESOURCES))
|
||||
try {
|
||||
for (Resource res : remote.multiGet(resources)) {
|
||||
Log.i(TAG, "Updating " + res.getName());
|
||||
local.updateByRemoteName(res);
|
||||
count++;
|
||||
}
|
||||
} finally {
|
||||
for (Resource res : remote.multiGet(resources)) {
|
||||
Log.i(TAG, "Updating " + res.getName());
|
||||
local.updateByRemoteName(res);
|
||||
local.commit();
|
||||
count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user