fix: replace placeholder message with a helpful error message
diff --git a/src/main/java/org/eclipse/yasson/internal/properties/MessageKeys.java b/src/main/java/org/eclipse/yasson/internal/properties/MessageKeys.java index fde557a..2171f8b 100644 --- a/src/main/java/org/eclipse/yasson/internal/properties/MessageKeys.java +++ b/src/main/java/org/eclipse/yasson/internal/properties/MessageKeys.java
@@ -285,6 +285,10 @@ */ PROPERTY_NAME_CLASH("propertyNameClash"), /** + * A {@code @JsonbTypeInfo} discriminator key collides with a property name on the implementing class. + */ + TYPE_INFO_KEY_CLASH("typeInfoKeyClash"), + /** * {@link Date} is not supported I-Json is enabled. */ SQL_DATE_IJSON_ERROR("sqlDateIJsonError"),
diff --git a/src/main/java/org/eclipse/yasson/internal/serializer/SerializationModelCreator.java b/src/main/java/org/eclipse/yasson/internal/serializer/SerializationModelCreator.java index 9aa29a7..c7870b7 100644 --- a/src/main/java/org/eclipse/yasson/internal/serializer/SerializationModelCreator.java +++ b/src/main/java/org/eclipse/yasson/internal/serializer/SerializationModelCreator.java
@@ -237,7 +237,10 @@ } for (PropertyModel propertyModel : classModel.getSortedProperties()) { if (propertySerializers.containsKey(propertyModel.getWriteName())) { - throw new JsonbException("CHANGE naming conflict!"); + throw new JsonbException(Messages.getMessage(MessageKeys.TYPE_INFO_KEY_CLASH, + typeInheritanceConfiguration.getFieldName(), + propertyModel.getWriteName(), + classModel.getType().getName())); } } }
diff --git a/src/main/resources/yasson-messages.properties b/src/main/resources/yasson-messages.properties index 244df20..59b7d23 100644 --- a/src/main/resources/yasson-messages.properties +++ b/src/main/resources/yasson-messages.properties
@@ -81,6 +81,7 @@ jsonbTransientWithOtherAnnotations=JsonbTransient annotation cannot be used with other jsonb annotations on the same property. nonParametrizedType=Type: {0} is not a parametrized type. propertyNameClash=Property {0} clashes with property {1} by read or write name in class {2}. +typeInfoKeyClash=@JsonbTypeInfo discriminator key ''{0}'' conflicts with property ''{1}'' in class {2}. Rename the property or change the @JsonbTypeInfo key. sqlDateIJsonError=java.sql.Date is not supported in STRICT_IJSON mode. recursiveReference=Recursive reference has been found in {0}. datatypeFactoryCreationFailed=An error occurred while DatatypeFactory creation.