summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2017-12-05 02:34:41 +0000
committer android-build-merger <android-build-merger@google.com> 2017-12-05 02:34:41 +0000
commita6c6c4f5d3eeb56a6140724f8b3e0517df64fa46 (patch)
tree21505b32ad9adf1f2eb647d884f3a5808a825efb
parent5e3d66e78be0266e8e45390fe43ae2e7f74b7271 (diff)
parent7e717e09cd3923f613a24c79358e900278ec6a2d (diff)
Merge "Frameworks: Silently ignore InterruptedException"
am: 7e717e09cd Change-Id: I75da071918e7fc2e547df4e4d75121806c730ca2
-rw-r--r--core/java/android/app/SharedPreferencesImpl.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/core/java/android/app/SharedPreferencesImpl.java b/core/java/android/app/SharedPreferencesImpl.java
index b18666613ea6..6dca4004cb46 100644
--- a/core/java/android/app/SharedPreferencesImpl.java
+++ b/core/java/android/app/SharedPreferencesImpl.java
@@ -217,10 +217,15 @@ final class SharedPreferencesImpl implements SharedPreferences {
}
private @GuardedBy("mLock") Map<String, Object> getLoaded() {
- try {
- return mMap.get();
- } catch (InterruptedException | ExecutionException e) {
- throw new IllegalStateException(e);
+ // For backwards compatibility, we need to ignore any interrupts. b/70122540.
+ for (;;) {
+ try {
+ return mMap.get();
+ } catch (ExecutionException e) {
+ throw new IllegalStateException(e);
+ } catch (InterruptedException e) {
+ // Ignore and try again.
+ }
}
}
private @GuardedBy("mLock") Map<String, Object> getLoadedWithBlockGuard() {