Skip to content

Commit

Permalink
thread safe changes, moved inside the synchronized block.
Browse files Browse the repository at this point in the history
  • Loading branch information
anirudhramanan committed Dec 18, 2017
1 parent 303c791 commit a631a1b
Showing 1 changed file with 5 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ private TypeSpec getAdapterFactorySpec(@NotNull List<SubFactoriesInfo> generated
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addSuperinterface(TypeAdapterFactory.class);

ParameterizedTypeName hashMapOfStringToInteger = ParameterizedTypeName.get(ConcurrentHashMap.class, String.class, Integer.class);
ParameterizedTypeName hashMapOfStringToInteger = ParameterizedTypeName.get(HashMap.class, String.class, Integer.class);
FieldSpec.Builder packageToIndexMapField = FieldSpec.builder(hashMapOfStringToInteger,
"packageToIndexMap", Modifier.FINAL, Modifier.PRIVATE).initializer("new " + hashMapOfStringToInteger.toString() + "( " + generatedStagFactoryWrappers.size() + ")");
adapterFactoryBuilder.addField(packageToIndexMapField.build());
Expand All @@ -116,7 +116,7 @@ private TypeSpec getAdapterFactorySpec(@NotNull List<SubFactoriesInfo> generated
MethodSpec.Builder getPackageNameMethodBuilder = MethodSpec.methodBuilder("getPackageName")
.addTypeVariable(genericTypeName)
.returns(String.class)
.addModifiers(Modifier.PRIVATE)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC)
.addParameter(ParameterizedTypeName.get(ClassName.get(Class.class), genericTypeName), "clazz")
.addCode("String name = clazz.getName();\n" +
"int last = name.lastIndexOf('.');\n" +
Expand All @@ -125,7 +125,7 @@ private TypeSpec getAdapterFactorySpec(@NotNull List<SubFactoriesInfo> generated

MethodSpec.Builder createTypeAdapterFactoryMethodBuilder = MethodSpec.methodBuilder("createTypeAdapterFactory")
.returns(TypeAdapterFactory.class)
.addModifiers(Modifier.PRIVATE)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC)
.addParameter(int.class, "index")
.addStatement("TypeAdapterFactory result = null")
.beginControlFlow("switch(index)");
Expand Down Expand Up @@ -193,6 +193,7 @@ private TypeSpec getAdapterFactorySpec(@NotNull List<SubFactoriesInfo> generated
createMethodBuilder.addStatement("return result");
createMethodBuilder.endControlFlow();
createMethodBuilder.addCode("\n");
createMethodBuilder.beginControlFlow("synchronized(this)");
createMethodBuilder.addStatement("Integer index = packageToIndexMap.get(currentPackageName);");
createMethodBuilder.beginControlFlow("if(null != index)");
createMethodBuilder.addStatement("TypeAdapterFactory typeAdapterFactory = getTypeAdapterFactory(index)");
Expand All @@ -218,6 +219,7 @@ private TypeSpec getAdapterFactorySpec(@NotNull List<SubFactoriesInfo> generated
createMethodBuilder.addCode("default : ");
createMethodBuilder.addStatement("\t\nreturn null");
createMethodBuilder.endControlFlow();
createMethodBuilder.endControlFlow();

adapterFactoryBuilder.addMethod(createMethodBuilder.build());

Expand Down

0 comments on commit a631a1b

Please sign in to comment.