Merge "Remove deleted pdu items from the updated cache"
This commit is contained in:
@@ -513,6 +513,9 @@ public class PduPersister {
|
||||
PduCacheEntry cacheEntry;
|
||||
synchronized(PDU_CACHE_INSTANCE) {
|
||||
if (PDU_CACHE_INSTANCE.isUpdating(uri)) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "load: " + uri + " blocked by isUpdating()");
|
||||
}
|
||||
try {
|
||||
PDU_CACHE_INSTANCE.wait();
|
||||
} catch (InterruptedException e) {
|
||||
@@ -840,6 +843,9 @@ public class PduPersister {
|
||||
// If the cache item is getting updated, wait until it's done updating before
|
||||
// purging it.
|
||||
if (PDU_CACHE_INSTANCE.isUpdating(uri)) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "updateHeaders: " + uri + " blocked by isUpdating()");
|
||||
}
|
||||
try {
|
||||
PDU_CACHE_INSTANCE.wait();
|
||||
} catch (InterruptedException e) {
|
||||
@@ -1002,6 +1008,9 @@ public class PduPersister {
|
||||
PduCacheEntry cacheEntry;
|
||||
synchronized(PDU_CACHE_INSTANCE) {
|
||||
if (PDU_CACHE_INSTANCE.isUpdating(uri)) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "updateParts: " + uri + " blocked by isUpdating()");
|
||||
}
|
||||
try {
|
||||
PDU_CACHE_INSTANCE.wait();
|
||||
} catch (InterruptedException e) {
|
||||
@@ -1097,6 +1106,9 @@ public class PduPersister {
|
||||
// If the cache item is getting updated, wait until it's done updating before
|
||||
// purging it.
|
||||
if (PDU_CACHE_INSTANCE.isUpdating(uri)) {
|
||||
if (LOCAL_LOGV) {
|
||||
Log.v(TAG, "persist: " + uri + " blocked by isUpdating()");
|
||||
}
|
||||
try {
|
||||
PDU_CACHE_INSTANCE.wait();
|
||||
} catch (InterruptedException e) {
|
||||
|
||||
@@ -161,6 +161,7 @@ public final class PduCache extends AbstractCache<Uri, PduCacheEntry> {
|
||||
}
|
||||
|
||||
private PduCacheEntry purgeSingleEntry(Uri key) {
|
||||
mUpdating.remove(key);
|
||||
PduCacheEntry entry = super.purge(key);
|
||||
if (entry != null) {
|
||||
removeFromThreads(key, entry);
|
||||
@@ -176,6 +177,7 @@ public final class PduCache extends AbstractCache<Uri, PduCacheEntry> {
|
||||
|
||||
mMessageBoxes.clear();
|
||||
mThreads.clear();
|
||||
mUpdating.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -216,6 +218,7 @@ public final class PduCache extends AbstractCache<Uri, PduCacheEntry> {
|
||||
HashSet<Uri> msgBox = mMessageBoxes.remove(msgBoxId);
|
||||
if (msgBox != null) {
|
||||
for (Uri key : msgBox) {
|
||||
mUpdating.remove(key);
|
||||
PduCacheEntry entry = super.purge(key);
|
||||
if (entry != null) {
|
||||
removeFromThreads(key, entry);
|
||||
@@ -240,6 +243,7 @@ public final class PduCache extends AbstractCache<Uri, PduCacheEntry> {
|
||||
HashSet<Uri> thread = mThreads.remove(threadId);
|
||||
if (thread != null) {
|
||||
for (Uri key : thread) {
|
||||
mUpdating.remove(key);
|
||||
PduCacheEntry entry = super.purge(key);
|
||||
if (entry != null) {
|
||||
removeFromMessageBoxes(key, entry);
|
||||
|
||||
Reference in New Issue
Block a user