aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Newberger <alann@google.com>2014-11-12 22:36:10 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-11-12 22:36:10 +0000
commit820d09d658a629f204563c469899a98ce74cddaa (patch)
tree18cf4be2e4aeb49b5cb8b8b497c84784d26783cb
parentf321693faae671114405697a066da29e99a87692 (diff)
parent2f7d83a1581be77878112d11046e3efd642e8e16 (diff)
downloadglide-820d09d658a629f204563c469899a98ce74cddaa.tar.gz
am 2f7d83a1: Synchronize factory key getters in Glide
* commit '2f7d83a1581be77878112d11046e3efd642e8e16': Synchronize factory key getters in Glide
-rw-r--r--library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java7
-rw-r--r--library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java7
2 files changed, 10 insertions, 4 deletions
diff --git a/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java b/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java
index 4dd76e3c..83acb5cd 100644
--- a/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java
+++ b/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java
@@ -70,8 +70,11 @@ public class TranscoderFactory {
if (decodedClass.equals(transcodedClass)) {
return UnitTranscoder.get();
}
- GET_KEY.set(decodedClass, transcodedClass);
- ResourceTranscoder<Z, R> result = factories.get(GET_KEY);
+ ResourceTranscoder<Z, R> result;
+ synchronized (GET_KEY) {
+ GET_KEY.set(decodedClass, transcodedClass);
+ result = factories.get(GET_KEY);
+ }
if (result == null) {
throw new IllegalArgumentException("No transcoder registered for " + decodedClass + " and "
+ transcodedClass);
diff --git a/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java b/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java
index 019b397e..63d22a32 100644
--- a/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java
+++ b/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java
@@ -69,8 +69,11 @@ public class DataLoadProviderFactory {
@SuppressWarnings("unchecked")
public <T, Z> DataLoadProvider<T, Z> get(Class<T> dataClass, Class<Z> resourceClass) {
- GET_KEY.set(dataClass, resourceClass);
- DataLoadProvider<T, Z> result = providers.get(GET_KEY);
+ DataLoadProvider<T, Z> result;
+ synchronized (GET_KEY) {
+ GET_KEY.set(dataClass, resourceClass);
+ result = providers.get(GET_KEY);
+ }
if (result == null) {
result = EmptyDataLoadProvider.get();
}