gitextract_4tdusv9e/ ├── .git-blame-ignore-revs ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ └── feature_request.md │ ├── dependabot.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── build.yml │ ├── check-android-compatibility.yml │ ├── check-api-compatibility.yml │ ├── cifuzz.yml │ ├── codeql-analysis.yml │ └── scorecard.yml ├── .gitignore ├── .mvn/ │ └── jvm.config ├── CHANGELOG.md ├── GsonDesignDocument.md ├── LICENSE ├── README.md ├── ReleaseProcess.md ├── Troubleshooting.md ├── UserGuide.md ├── extras/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── gson/ │ │ ├── extras/ │ │ │ └── examples/ │ │ │ └── rawcollections/ │ │ │ └── RawCollectionsExample.java │ │ ├── interceptors/ │ │ │ ├── Intercept.java │ │ │ ├── InterceptorFactory.java │ │ │ └── JsonPostDeserializer.java │ │ └── typeadapters/ │ │ ├── PostConstructAdapterFactory.java │ │ ├── RuntimeTypeAdapterFactory.java │ │ └── UtcDateTypeAdapter.java │ └── test/ │ └── java/ │ └── com/ │ └── google/ │ └── gson/ │ ├── interceptors/ │ │ └── InterceptorTest.java │ └── typeadapters/ │ ├── PostConstructAdapterFactoryTest.java │ ├── RuntimeTypeAdapterFactoryTest.java │ └── UtcDateTypeAdapterTest.java ├── gson/ │ ├── LICENSE │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── google/ │ │ │ │ └── gson/ │ │ │ │ ├── ExclusionStrategy.java │ │ │ │ ├── FieldAttributes.java │ │ │ │ ├── FieldNamingPolicy.java │ │ │ │ ├── FieldNamingStrategy.java │ │ │ │ ├── FormattingStyle.java │ │ │ │ ├── Gson.java │ │ │ │ ├── GsonBuilder.java │ │ │ │ ├── InstanceCreator.java │ │ │ │ ├── JsonArray.java │ │ │ │ ├── JsonDeserializationContext.java │ │ │ │ ├── JsonDeserializer.java │ │ │ │ ├── JsonElement.java │ │ │ │ ├── JsonIOException.java │ │ │ │ ├── JsonNull.java │ │ │ │ ├── JsonObject.java │ │ │ │ ├── JsonParseException.java │ │ │ │ ├── JsonParser.java │ │ │ │ ├── JsonPrimitive.java │ │ │ │ ├── JsonSerializationContext.java │ │ │ │ ├── JsonSerializer.java │ │ │ │ ├── JsonStreamParser.java │ │ │ │ ├── JsonSyntaxException.java │ │ │ │ ├── LongSerializationPolicy.java │ │ │ │ ├── ReflectionAccessFilter.java │ │ │ │ ├── Strictness.java │ │ │ │ ├── ToNumberPolicy.java │ │ │ │ ├── ToNumberStrategy.java │ │ │ │ ├── TypeAdapter.java │ │ │ │ ├── TypeAdapterFactory.java │ │ │ │ ├── annotations/ │ │ │ │ │ ├── Expose.java │ │ │ │ │ ├── JsonAdapter.java │ │ │ │ │ ├── SerializedName.java │ │ │ │ │ ├── Since.java │ │ │ │ │ ├── Until.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── internal/ │ │ │ │ │ ├── ConstructorConstructor.java │ │ │ │ │ ├── Excluder.java │ │ │ │ │ ├── GsonTypes.java │ │ │ │ │ ├── JavaVersion.java │ │ │ │ │ ├── JsonReaderInternalAccess.java │ │ │ │ │ ├── LazilyParsedNumber.java │ │ │ │ │ ├── LinkedTreeMap.java │ │ │ │ │ ├── NonNullElementWrapperList.java │ │ │ │ │ ├── NumberLimits.java │ │ │ │ │ ├── ObjectConstructor.java │ │ │ │ │ ├── PreJava9DateFormatProvider.java │ │ │ │ │ ├── Primitives.java │ │ │ │ │ ├── ReflectionAccessFilterHelper.java │ │ │ │ │ ├── Streams.java │ │ │ │ │ ├── TroubleshootingGuide.java │ │ │ │ │ ├── UnsafeAllocator.java │ │ │ │ │ ├── bind/ │ │ │ │ │ │ ├── ArrayTypeAdapter.java │ │ │ │ │ │ ├── CollectionTypeAdapterFactory.java │ │ │ │ │ │ ├── DefaultDateTypeAdapter.java │ │ │ │ │ │ ├── EnumTypeAdapter.java │ │ │ │ │ │ ├── IgnoreJRERequirement.java │ │ │ │ │ │ ├── JavaTimeTypeAdapters.java │ │ │ │ │ │ ├── JsonAdapterAnnotationTypeAdapterFactory.java │ │ │ │ │ │ ├── JsonElementTypeAdapter.java │ │ │ │ │ │ ├── JsonTreeReader.java │ │ │ │ │ │ ├── JsonTreeWriter.java │ │ │ │ │ │ ├── MapTypeAdapterFactory.java │ │ │ │ │ │ ├── NumberTypeAdapter.java │ │ │ │ │ │ ├── ObjectTypeAdapter.java │ │ │ │ │ │ ├── ReflectiveTypeAdapterFactory.java │ │ │ │ │ │ ├── SerializationDelegatingTypeAdapter.java │ │ │ │ │ │ ├── TreeTypeAdapter.java │ │ │ │ │ │ ├── TypeAdapterRuntimeTypeWrapper.java │ │ │ │ │ │ ├── TypeAdapters.java │ │ │ │ │ │ └── util/ │ │ │ │ │ │ └── ISO8601Utils.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── reflect/ │ │ │ │ │ │ └── ReflectionHelper.java │ │ │ │ │ └── sql/ │ │ │ │ │ ├── SqlDateTypeAdapter.java │ │ │ │ │ ├── SqlTimeTypeAdapter.java │ │ │ │ │ ├── SqlTimestampTypeAdapter.java │ │ │ │ │ └── SqlTypesSupport.java │ │ │ │ ├── package-info.java │ │ │ │ ├── reflect/ │ │ │ │ │ ├── TypeToken.java │ │ │ │ │ └── package-info.java │ │ │ │ └── stream/ │ │ │ │ ├── JsonReader.java │ │ │ │ ├── JsonScope.java │ │ │ │ ├── JsonToken.java │ │ │ │ ├── JsonWriter.java │ │ │ │ ├── MalformedJsonException.java │ │ │ │ └── package-info.java │ │ │ └── module-info.java │ │ ├── java-templates/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── gson/ │ │ │ └── internal/ │ │ │ └── GsonBuildConfig.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── proguard/ │ │ └── gson.pro │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── google/ │ │ └── gson/ │ │ ├── CommentsTest.java │ │ ├── DefaultInetAddressTypeAdapterTest.java │ │ ├── DefaultMapJsonSerializerTest.java │ │ ├── ExposeAnnotationExclusionStrategyTest.java │ │ ├── FieldAttributesTest.java │ │ ├── FieldNamingPolicyTest.java │ │ ├── GenericArrayTypeTest.java │ │ ├── GsonBuilderTest.java │ │ ├── GsonTest.java │ │ ├── GsonTypeAdapterTest.java │ │ ├── InnerClassExclusionStrategyTest.java │ │ ├── JavaSerializationTest.java │ │ ├── JsonArrayAsListSuiteTest.java │ │ ├── JsonArrayAsListTest.java │ │ ├── JsonArrayTest.java │ │ ├── JsonNullTest.java │ │ ├── JsonObjectAsMapSuiteTest.java │ │ ├── JsonObjectAsMapTest.java │ │ ├── JsonObjectTest.java │ │ ├── JsonParserParameterizedTest.java │ │ ├── JsonParserTest.java │ │ ├── JsonPrimitiveTest.java │ │ ├── JsonStreamParserTest.java │ │ ├── LongSerializationPolicyTest.java │ │ ├── MixedStreamTest.java │ │ ├── ObjectTypeAdapterParameterizedTest.java │ │ ├── ObjectTypeAdapterTest.java │ │ ├── OverrideCoreTypeAdaptersTest.java │ │ ├── ParameterizedTypeFixtures.java │ │ ├── ParameterizedTypeTest.java │ │ ├── PrimitiveTypeAdapter.java │ │ ├── SubsetTest.java │ │ ├── ToNumberPolicyTest.java │ │ ├── TypeAdapterTest.java │ │ ├── VersionExclusionStrategyTest.java │ │ ├── common/ │ │ │ ├── MoreAsserts.java │ │ │ └── TestTypes.java │ │ ├── functional/ │ │ │ ├── ArrayTest.java │ │ │ ├── CircularReferenceTest.java │ │ │ ├── CollectionTest.java │ │ │ ├── ConcurrencyTest.java │ │ │ ├── CustomDeserializerTest.java │ │ │ ├── CustomSerializerTest.java │ │ │ ├── CustomTypeAdaptersTest.java │ │ │ ├── DefaultTypeAdaptersTest.java │ │ │ ├── DelegateTypeAdapterTest.java │ │ │ ├── EnumTest.java │ │ │ ├── EnumWithObfuscatedTest.java │ │ │ ├── EscapingTest.java │ │ │ ├── ExclusionStrategyFunctionalTest.java │ │ │ ├── ExposeFieldsTest.java │ │ │ ├── FieldExclusionTest.java │ │ │ ├── FieldNamingTest.java │ │ │ ├── FormattingStyleTest.java │ │ │ ├── GsonVersionDiagnosticsTest.java │ │ │ ├── InheritanceTest.java │ │ │ ├── InstanceCreatorTest.java │ │ │ ├── InterfaceTest.java │ │ │ ├── InternationalizationTest.java │ │ │ ├── Java17RecordTest.java │ │ │ ├── JavaUtilConcurrentAtomicTest.java │ │ │ ├── JavaUtilTest.java │ │ │ ├── JsonAdapterAnnotationOnClassesTest.java │ │ │ ├── JsonAdapterAnnotationOnFieldsTest.java │ │ │ ├── JsonAdapterSerializerDeserializerTest.java │ │ │ ├── JsonParserTest.java │ │ │ ├── JsonTreeTest.java │ │ │ ├── LeniencyTest.java │ │ │ ├── MapAsArrayTypeAdapterTest.java │ │ │ ├── MapTest.java │ │ │ ├── MoreSpecificTypeSerializationTest.java │ │ │ ├── NamingPolicyTest.java │ │ │ ├── NullObjectAndFieldTest.java │ │ │ ├── NumberLimitsTest.java │ │ │ ├── ObjectTest.java │ │ │ ├── ParameterizedTypesTest.java │ │ │ ├── PrettyPrintingTest.java │ │ │ ├── PrimitiveCharacterTest.java │ │ │ ├── PrimitiveTest.java │ │ │ ├── PrintFormattingTest.java │ │ │ ├── RawSerializationTest.java │ │ │ ├── ReadersWritersTest.java │ │ │ ├── ReflectionAccessFilterTest.java │ │ │ ├── ReflectionAccessTest.java │ │ │ ├── ReusedTypeVariablesFullyResolveTest.java │ │ │ ├── RuntimeTypeAdapterFactoryFunctionalTest.java │ │ │ ├── SecurityTest.java │ │ │ ├── SerializedNameTest.java │ │ │ ├── StreamingTypeAdaptersTest.java │ │ │ ├── StringTest.java │ │ │ ├── ToNumberPolicyFunctionalTest.java │ │ │ ├── TreeTypeAdaptersTest.java │ │ │ ├── TypeAdapterPrecedenceTest.java │ │ │ ├── TypeAdapterRuntimeTypeWrapperTest.java │ │ │ ├── TypeHierarchyAdapterTest.java │ │ │ ├── TypeVariableTest.java │ │ │ ├── UncategorizedTest.java │ │ │ └── VersioningTest.java │ │ ├── integration/ │ │ │ └── OSGiManifestIT.java │ │ ├── internal/ │ │ │ ├── ConstructorConstructorTest.java │ │ │ ├── GsonBuildConfigTest.java │ │ │ ├── GsonTypesTest.java │ │ │ ├── JavaVersionTest.java │ │ │ ├── LazilyParsedNumberTest.java │ │ │ ├── LinkedTreeMapSuiteTest.java │ │ │ ├── LinkedTreeMapTest.java │ │ │ ├── StreamsTest.java │ │ │ ├── UnsafeAllocatorInstantiationTest.java │ │ │ ├── bind/ │ │ │ │ ├── DefaultDateTypeAdapterTest.java │ │ │ │ ├── Java17ReflectiveTypeAdapterFactoryTest.java │ │ │ │ ├── JsonElementReaderTest.java │ │ │ │ ├── JsonTreeReaderTest.java │ │ │ │ ├── JsonTreeWriterTest.java │ │ │ │ ├── RecursiveTypesResolveTest.java │ │ │ │ └── util/ │ │ │ │ └── ISO8601UtilsTest.java │ │ │ ├── reflect/ │ │ │ │ └── Java17ReflectionHelperTest.java │ │ │ └── sql/ │ │ │ ├── SqlTypesGsonTest.java │ │ │ └── SqlTypesSupportTest.java │ │ ├── metrics/ │ │ │ └── PerformanceTest.java │ │ ├── reflect/ │ │ │ └── TypeTokenTest.java │ │ └── stream/ │ │ ├── JsonReaderPathTest.java │ │ ├── JsonReaderTest.java │ │ └── JsonWriterTest.java │ └── resources/ │ └── testcases-proguard.conf ├── metrics/ │ ├── README.md │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── google/ │ └── gson/ │ └── metrics/ │ ├── BagOfPrimitives.java │ ├── BagOfPrimitivesDeserializationBenchmark.java │ ├── CollectionsDeserializationBenchmark.java │ ├── NonUploadingCaliperRunner.java │ ├── ParseBenchmark.java │ └── SerializationBenchmark.java ├── pom.xml ├── proto/ │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── gson/ │ │ └── protobuf/ │ │ └── ProtoTypeAdapter.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── google/ │ │ └── gson/ │ │ └── protobuf/ │ │ └── functional/ │ │ ├── ProtosWithAnnotationsAndJsonNamesTest.java │ │ ├── ProtosWithAnnotationsTest.java │ │ ├── ProtosWithComplexAndRepeatedFieldsTest.java │ │ └── ProtosWithPrimitiveTypesTest.java │ └── protobuf/ │ ├── annotations.proto │ └── bag.proto ├── test-graal-native-image/ │ ├── README.md │ ├── pom.xml │ └── src/ │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── google/ │ │ └── gson/ │ │ └── native_test/ │ │ ├── Java17RecordReflectionTest.java │ │ └── ReflectionTest.java │ └── resources/ │ └── META-INF/ │ └── native-image/ │ └── reflect-config.json ├── test-jpms/ │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── module-info.java │ └── test/ │ └── java/ │ ├── com/ │ │ └── google/ │ │ └── gson/ │ │ └── jpms_test/ │ │ ├── ExportedPackagesTest.java │ │ ├── ModuleTest.java │ │ ├── ReflectionInaccessibleTest.java │ │ └── opened/ │ │ └── ReflectionTest.java │ └── module-info.java └── test-shrinker/ ├── README.md ├── common.pro ├── pom.xml ├── proguard.pro ├── r8.pro └── src/ ├── main/ │ └── java/ │ └── com/ │ └── example/ │ ├── ClassWithAdapter.java │ ├── ClassWithExposeAnnotation.java │ ├── ClassWithHasArgsConstructor.java │ ├── ClassWithJsonAdapterAnnotation.java │ ├── ClassWithNamedFields.java │ ├── ClassWithNoArgsConstructor.java │ ├── ClassWithSerializedName.java │ ├── ClassWithUnreferencedHasArgsConstructor.java │ ├── ClassWithUnreferencedNoArgsConstructor.java │ ├── ClassWithVersionAnnotations.java │ ├── EnumClass.java │ ├── EnumClassWithSerializedName.java │ ├── GenericClasses.java │ ├── InterfaceWithImplementation.java │ ├── Main.java │ ├── NoSerializedNameMain.java │ ├── TestExecutor.java │ └── UnusedClass.java └── test/ └── java/ └── com/ └── google/ └── gson/ └── it/ └── ShrinkingIT.java