diff options
Diffstat (limited to 'src/main/java/com/android/volley/CacheDispatcher.java')
-rw-r--r-- | src/main/java/com/android/volley/CacheDispatcher.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/com/android/volley/CacheDispatcher.java b/src/main/java/com/android/volley/CacheDispatcher.java index be06d1f..12b1035 100644 --- a/src/main/java/com/android/volley/CacheDispatcher.java +++ b/src/main/java/com/android/volley/CacheDispatcher.java @@ -159,6 +159,15 @@ public class CacheDispatcher extends Thread { new NetworkResponse(entry.data, entry.responseHeaders)); request.addMarker("cache-hit-parsed"); + if (!response.isSuccess()) { + request.addMarker("cache-parsing-failed"); + mCache.invalidate(request.getCacheKey(), true); + request.setCacheEntry(null); + if (!mWaitingRequestManager.maybeAddToWaitingRequests(request)) { + mNetworkQueue.put(request); + } + return; + } if (!entry.refreshNeeded()) { // Completely unexpired cache hit. Just deliver the response. mDelivery.postResponse(request, response); |