diff --git a/packages/SystemUI/src/com/android/systemui/plugins/PluginDependencyProvider.java b/packages/SystemUI/src/com/android/systemui/plugins/PluginDependencyProvider.java index 59f6d56ac1be1..c58d889270e27 100644 --- a/packages/SystemUI/src/com/android/systemui/plugins/PluginDependencyProvider.java +++ b/packages/SystemUI/src/com/android/systemui/plugins/PluginDependencyProvider.java @@ -34,7 +34,9 @@ public class PluginDependencyProvider extends DependencyProvider { } public void allowPluginDependency(Class cls, T obj) { - mDependencies.put(cls, obj); + synchronized (mDependencies) { + mDependencies.put(cls, obj); + } } @Override @@ -42,9 +44,11 @@ public class PluginDependencyProvider extends DependencyProvider { if (!mManager.dependsOn(p, cls)) { throw new IllegalArgumentException(p.getClass() + " does not depend on " + cls); } - if (!mDependencies.containsKey(cls)) { - throw new IllegalArgumentException("Unknown dependency " + cls); + synchronized (mDependencies) { + if (!mDependencies.containsKey(cls)) { + throw new IllegalArgumentException("Unknown dependency " + cls); + } + return (T) mDependencies.get(cls); } - return (T) mDependencies.get(cls); } }