Getting ConstraintDeclarationException Hibernate Valitation
Issue
Installed EAP 7.1.0 with JDK1.8 u121 under Suse Linux (SLES 12). The EAP is started using the standalone-full-ha.xml. When the 1th application is deployed, the following error is thrown :
Cannot upload deployment: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"Example.ear\".WeldStartService" => "Failed to start service Caused by: org.jboss.weld.exceptions.DefinitionException: Exception List with 1 exceptions: Exception 0 : javax.validation.ConstraintDeclarationException: HV000151: A method overriding another method must not alter the parameter constraint configuration, but method public void com.example.MyServiceBean.assigner(com.example.entity.Utils) throws com.example.service.exception.RecordNotFoundException changes the configuration of public abstract void com.example.MyServiceBean.assigner(com.example.entity.Utils) throws com.example.service.exception.RecordNotFoundException. at org.hibernate.validator.internal.metadata.aggregated.rule.OverridingMethodMustNotAlterParameterConstraints.apply(OverridingMethodMustNotAlterParameterConstraints.java:24) at org.hibernate.validator.internal.metadata.aggregated.ExecutableMetaData$Builder.assertCorrectnessOfConfiguration(ExecutableMetaData.java:456) at org.hibernate.validator.internal.metadata.aggregated.ExecutableMetaData$Builder.build(ExecutableMetaData.java:374) at org.hibernate.validator.internal.metadata.aggregated.BeanMetaDataImpl$BuilderDelegate.build(BeanMetaDataImpl.java:720) at org.hibernate.validator.internal.metadata.aggregated.BeanMetaDataImpl$BeanMetaDataBuilder.build(BeanMetaDataImpl.java:605) at org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:208) at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getOrCreateBeanMetaData(BeanMetaDataManager.java:231) at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanMetaData(BeanMetaDataManager.java:178) at org.hibernate.validator.internal.engine.ValidatorImpl.getConstraintsForClass(ValidatorImpl.java:327) at org.hibernate.validator.internal.cdi.ValidationExtension.determineConstrainedCallables(ValidationExtension.java:241) at org.hibernate.validator.internal.cdi.ValidationExtension.processAnnotatedType(ValidationExtension.java:228) at .....
Also, the following code works on the previous EAP 6.4 version, however, does not work on EAP 7.1.
public class OrderService {
void placeOrder(String customerCode, Item item, int quantity) { [...] }
}
public class SimpleOrderService extends OrderService {
@Override
public void placeOrder(
@NotNull @Size(min=3, max=20) String customerCode,
@NotNull Item item,
@Min(1) int quantity) {
[...]
}
}
Environment
Red Hat JBoss Enterprise Application Platform (EAP) 7.1
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.