aboutsummaryrefslogtreecommitdiff
path: root/library/src/main/java/com/bumptech
diff options
context:
space:
mode:
authorSam Judd <judds@google.com>2014-10-07 18:46:48 -0700
committerSam Judd <judds@google.com>2014-10-07 19:15:41 -0700
commit8a86b3909373197eabbd222115ba33257dc5a5aa (patch)
tree1b6d8ed8390ebe65e58acb01c6723518104a86d7 /library/src/main/java/com/bumptech
parent1737514a35eae271f1a7d5441b92f9ea9c048e27 (diff)
downloadglide-8a86b3909373197eabbd222115ba33257dc5a5aa.tar.gz
Fix a concurrency bug in DataLoadProviderRegistry
Fixes #181
Diffstat (limited to 'library/src/main/java/com/bumptech')
-rw-r--r--library/src/main/java/com/bumptech/glide/provider/DataLoadProviderRegistry.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderRegistry.java b/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderRegistry.java
index 0fbb452a..7c50577b 100644
--- a/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderRegistry.java
+++ b/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderRegistry.java
@@ -40,8 +40,11 @@ public class DataLoadProviderRegistry {
*/
@SuppressWarnings("unchecked")
public <T, Z> DataLoadProvider<T, Z> get(Class<T> dataClass, Class<Z> resourceClass) {
- GET_KEY.set(dataClass, resourceClass);
- DataLoadProvider<?, ?> result = providers.get(GET_KEY);
+ DataLoadProvider<?, ?> result;
+ synchronized (GET_KEY) {
+ GET_KEY.set(dataClass, resourceClass);
+ result = providers.get(GET_KEY);
+ }
if (result == null) {
result = EmptyDataLoadProvider.get();
}