@@ -813,6 +813,7 @@ private static final class RealProviderMapProvider<K, V>
813
813
extends RealMapBinderProviderWithDependencies <K , V , Map <K , Provider <V >>> {
814
814
private Map <K , Provider <V >> mapOfProviders ;
815
815
private Set <Dependency <?>> dependencies = RealMapBinder .MODULE_DEPENDENCIES ;
816
+ private boolean initialized ;
816
817
817
818
private RealProviderMapProvider (BindingSelection <K , V > bindingSelection ) {
818
819
super (bindingSelection );
@@ -825,6 +826,10 @@ public Set<Dependency<?>> getDependencies() {
825
826
826
827
@ Override
827
828
protected void doInitialize (InjectorImpl injector , Errors errors ) {
829
+ if (initialized ) {
830
+ return ;
831
+ }
832
+ initialized = true ;
828
833
ImmutableMap .Builder <K , Provider <V >> mapOfProvidersBuilder = ImmutableMap .builder ();
829
834
ImmutableSet .Builder <Dependency <?>> dependenciesBuilder = ImmutableSet .builder ();
830
835
for (Map .Entry <K , Binding <V >> entry : bindingSelection .getMapBindings ().entrySet ()) {
@@ -855,6 +860,8 @@ private static final class RealMapProvider<K, V>
855
860
856
861
K [] keys ;
857
862
863
+ private boolean initialized = false ;
864
+
858
865
RealMapProvider (BindingSelection <K , V > bindingSelection ) {
859
866
super (bindingSelection );
860
867
}
@@ -865,6 +872,10 @@ BindingSelection<K, V> getBindingSelection() {
865
872
866
873
@ Override
867
874
protected void doInitialize (InjectorImpl injector , Errors errors ) throws ErrorsException {
875
+ if (initialized ) {
876
+ return ;
877
+ }
878
+ initialized = true ;
868
879
@ SuppressWarnings ("unchecked" )
869
880
K [] keysArray = (K []) new Object [bindingSelection .getMapBindings ().size ()];
870
881
keys = keysArray ;
@@ -1209,6 +1220,7 @@ private static final class RealProviderMultimapProvider<K, V>
1209
1220
extends RealMultimapBinderProviderWithDependencies <K , V , Map <K , Set <Provider <V >>>> {
1210
1221
private Map <K , Set <Provider <V >>> multimapOfProviders ;
1211
1222
private Set <Dependency <?>> dependencies = RealMapBinder .MODULE_DEPENDENCIES ;
1223
+ private boolean initialized ;
1212
1224
1213
1225
private RealProviderMultimapProvider (Key <Map <K , V >> mapKey ) {
1214
1226
super (mapKey );
@@ -1221,6 +1233,10 @@ public Set<Dependency<?>> getDependencies() {
1221
1233
1222
1234
@ Override
1223
1235
protected void doInitialize (InjectorImpl injector , Errors errors ) {
1236
+ if (initialized ) {
1237
+ return ;
1238
+ }
1239
+ initialized = true ;
1224
1240
ImmutableMap .Builder <K , Set <Provider <V >>> multimapOfProvidersBuilder =
1225
1241
ImmutableMap .builder ();
1226
1242
ImmutableSet .Builder <Dependency <?>> dependenciesBuilder = ImmutableSet .builder ();
@@ -1271,6 +1287,8 @@ private PerKeyData(K key, Binding<V>[] bindings, SingleParameterInjector<V>[] in
1271
1287
1272
1288
private PerKeyData <K , V >[] perKeyDatas ;
1273
1289
1290
+ private boolean initialized = false ;
1291
+
1274
1292
private RealMultimapProvider (Key <Map <K , V >> mapKey ) {
1275
1293
super (mapKey );
1276
1294
}
@@ -1282,6 +1300,11 @@ public Set<Dependency<?>> getDependencies() {
1282
1300
1283
1301
@ Override
1284
1302
protected void doInitialize (InjectorImpl injector , Errors errors ) throws ErrorsException {
1303
+ if (initialized ) {
1304
+ return ;
1305
+ }
1306
+ initialized = true ;
1307
+
1285
1308
@ SuppressWarnings ({"unchecked" , "rawtypes" })
1286
1309
PerKeyData <K , V >[] typedPerKeyData =
1287
1310
new PerKeyData [bindingSelection .getMapBindings ().size ()];
0 commit comments