diff --git a/src/main/java/org/eclipse/yasson/internal/ReflectionUtils.java b/src/main/java/org/eclipse/yasson/internal/ReflectionUtils.java index a5eac94c..66ccac94 100644 --- a/src/main/java/org/eclipse/yasson/internal/ReflectionUtils.java +++ b/src/main/java/org/eclipse/yasson/internal/ReflectionUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at diff --git a/src/main/java/org/eclipse/yasson/internal/deserializer/DeserializationModelCreator.java b/src/main/java/org/eclipse/yasson/internal/deserializer/DeserializationModelCreator.java index 0ac3f980..26fe8cfe 100644 --- a/src/main/java/org/eclipse/yasson/internal/deserializer/DeserializationModelCreator.java +++ b/src/main/java/org/eclipse/yasson/internal/deserializer/DeserializationModelCreator.java @@ -224,17 +224,20 @@ private ModelDeserializer createObjectDeserializer(LinkedList } for (String s : params) { CreatorModel creatorModel = creator.findByName(s); - ModelDeserializer modelDeserializer = typeProcessor(chain, - creatorModel.getType(), - creatorModel.getCustomization(), - JustReturn.instance()); - String parameterName = renamer.apply(creatorModel.getName()); - processors.put(parameterName, modelDeserializer); - if (creatorModel.getCustomization().isRequired()) { - defaultCreatorValues.put(parameterName, new RequiredCreatorParameter(parameterName)); - } else { - Class rawParamType = ReflectionUtils.getRawType(creatorModel.getType()); - defaultCreatorValues.put(parameterName, DEFAULT_CREATOR_VALUES.getOrDefault(rawParamType, NULL_PROVIDER)); + if (creatorModel != null) { + ModelDeserializer modelDeserializer = typeProcessor(chain, + creatorModel.getType(), + creatorModel.getCustomization(), + JustReturn.instance()); + String parameterName = renamer.apply(creatorModel.getName()); + processors.put(parameterName, modelDeserializer); + if (creatorModel.getCustomization().isRequired()) { + defaultCreatorValues.put(parameterName, new RequiredCreatorParameter(parameterName)); + } else { + Class rawParamType = ReflectionUtils.getRawType(creatorModel.getType()); + defaultCreatorValues.put(parameterName, + DEFAULT_CREATOR_VALUES.getOrDefault(rawParamType, NULL_PROVIDER)); + } } } ModelDeserializer instanceCreator; diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java b/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java index b193521c..a1bf7f2b 100644 --- a/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java +++ b/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/LowerBoundTypeVariableWithCollectionAttributeClass.java b/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/LowerBoundTypeVariableWithCollectionAttributeClass.java index 3b7198a6..7f58792a 100644 --- a/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/LowerBoundTypeVariableWithCollectionAttributeClass.java +++ b/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/LowerBoundTypeVariableWithCollectionAttributeClass.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at