Skip to content

Commit ba9993b

Browse files
committed
Improves the logic which makes sure that custom IJsonBackedObject type adapters defined in GsonFactory are not overridden.
1 parent 59a3098 commit ba9993b

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/main/java/com/microsoft/graph/serializer/FallbackTypeAdapterFactory.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,11 @@
2828
import com.google.gson.TypeAdapter;
2929
import com.google.gson.TypeAdapterFactory;
3030
import com.google.gson.internal.Streams;
31+
import com.google.gson.internal.bind.ReflectiveTypeAdapterFactory;
3132
import com.google.gson.reflect.TypeToken;
3233
import com.google.gson.stream.JsonReader;
3334
import com.google.gson.stream.JsonToken;
3435
import com.google.gson.stream.JsonWriter;
35-
import com.microsoft.graph.http.BaseCollectionPage;
36-
import com.microsoft.graph.http.BaseCollectionResponse;
3736
import com.microsoft.graph.logger.ILogger;
3837

3938
import java.io.IOException;
@@ -99,12 +98,13 @@ public <T> TypeAdapter<T> create(@Nonnull final Gson gson, @Nonnull final TypeTo
9998
return (TypeAdapter<T>) voidAdapter;
10099
} else if (IJsonBackedObject.class.isAssignableFrom(type.getRawType())) {
101100

101+
final TypeAdapter<IJsonBackedObject> delegatedAdapter = (TypeAdapter<IJsonBackedObject>) gson.getDelegateAdapter(this, type);
102+
102103
// Avoid overriding custom IJsonBackedObject type adapters defined in GsonFactory
103-
if (BaseCollectionResponse.class.isAssignableFrom(rawType) || BaseCollectionPage.class.isAssignableFrom(rawType)) {
104+
if (!(delegatedAdapter instanceof ReflectiveTypeAdapterFactory.Adapter)) {
104105
return null;
105106
}
106107

107-
final TypeAdapter<IJsonBackedObject> delegatedAdapter = (TypeAdapter<IJsonBackedObject>) gson.getDelegateAdapter(this, type);
108108
return (TypeAdapter<T>) new ODataTypeParametrizedIJsonBackedObjectAdapter(gson, delegatedAdapter, (TypeToken<IJsonBackedObject>) type, logger);
109109
}
110110
else {

0 commit comments

Comments
 (0)