diff --git a/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderRegistry.java b/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderRegistry.java index 840bf7d9da38c33e27f8e3cb8bcd3866ad21ca31..adc854c7f61963e4873a15898a3f29f4b72a5689 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderRegistry.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderRegistry.java @@ -44,8 +44,11 @@ public class TranscoderRegistry { // we know they're the same type (Z and R) return (ResourceTranscoder) UnitTranscoder.get(); } - GET_KEY.set(decodedClass, transcodedClass); - ResourceTranscoder result = factories.get(GET_KEY); + final ResourceTranscoder 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);