stefanuebe/vaadin-fullcalendar

@NotNull contains Constraint annotation, but does not contain a message parameter

Closed this issue · 2 comments

Bug Description

Version 6.0.0

Under a WildFly JavaEE 8 enviroment Hibernate Validator 6.0 complains about the annotation org.vaadin.stefan.fullcalendar.NotNull because it's missing the message, groups and payload parameters.
This happens during Weld (CDI) initialization if any class extending org.vaadin.stefan.fullcalendar.Entry is found because some of its methods (e.g. addClassNames or removeClassNames) have annotated parameters.

This is the full stack trace:

14:24:57,738 [ERROR] [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."myear.ear".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."myear.ear".WeldStartService: Failed to start service
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1731)
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.jboss.weld.exceptions.DefinitionException: Exception List with 1 exceptions:
Exception 0 :
javax.validation.ConstraintDefinitionException: HV000074: org.vaadin.stefan.fullcalendar.NotNull contains Constraint annotation, but does not contain a message parameter.
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.core.ConstraintHelper.assertMessageParameterExists(ConstraintHelper.java:915)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.core.ConstraintHelper.lambda$isConstraintAnnotation$5(ConstraintHelper.java:861)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.core.ConstraintHelper.isConstraintAnnotation(ConstraintHelper.java:860)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findConstraintAnnotations(AnnotationMetaDataProvider.java:507)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getParameterMetaData(AnnotationMetaDataProvider.java:417)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findExecutableMetaData(AnnotationMetaDataProvider.java:300)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMetaData(AnnotationMetaDataProvider.java:285)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMethodMetaData(AnnotationMetaDataProvider.java:272)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:134)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:124)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanConfigurationForHierarchy(BeanMetaDataManager.java:241)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:208)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanMetaData(BeanMetaDataManager.java:175)
	at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.engine.ValidatorImpl.getConstraintsForClass(ValidatorImpl.java:313)
	at org.hibernate.validator.cdi@6.0.22.Final//org.hibernate.validator.cdi.ValidationExtension.determineConstrainedCallables(ValidationExtension.java:248)
	at org.hibernate.validator.cdi@6.0.22.Final//org.hibernate.validator.cdi.ValidationExtension.processAnnotatedType(ValidationExtension.java:235)
	at jdk.internal.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:95)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:85)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:168)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:330)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:123)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:308)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:286)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:207)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:176)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.BeanDeployer.processAnnotatedTypes(BeanDeployer.java:166)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.BeanDeployment.createTypes(BeanDeployment.java:219)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:426)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:79)
	at org.jboss.as.weld@24.0.1.Final//org.jboss.as.weld.WeldStartService.start(WeldStartService.java:96)
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
	at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
	at java.base/java.lang.Thread.run(Thread.java:833)

	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:214)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:176)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.BeanDeployer.processAnnotatedTypes(BeanDeployer.java:166)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.BeanDeployment.createTypes(BeanDeployment.java:219)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:426)
	at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:79)
	at org.jboss.as.weld@24.0.1.Final//org.jboss.as.weld.WeldStartService.start(WeldStartService.java:96)
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
	at org.jboss.msc@1.4.12.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
	... 6 more
	Suppressed: javax.validation.ConstraintDefinitionException: HV000074: org.vaadin.stefan.fullcalendar.NotNull contains Constraint annotation, but does not contain a message parameter.
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.core.ConstraintHelper.assertMessageParameterExists(ConstraintHelper.java:915)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.core.ConstraintHelper.lambda$isConstraintAnnotation$5(ConstraintHelper.java:861)
		at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.core.ConstraintHelper.isConstraintAnnotation(ConstraintHelper.java:860)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findConstraintAnnotations(AnnotationMetaDataProvider.java:507)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getParameterMetaData(AnnotationMetaDataProvider.java:417)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findExecutableMetaData(AnnotationMetaDataProvider.java:300)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMetaData(AnnotationMetaDataProvider.java:285)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getMethodMetaData(AnnotationMetaDataProvider.java:272)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:134)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:124)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanConfigurationForHierarchy(BeanMetaDataManager.java:241)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:208)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanMetaData(BeanMetaDataManager.java:175)
		at org.hibernate.validator@6.0.22.Final//org.hibernate.validator.internal.engine.ValidatorImpl.getConstraintsForClass(ValidatorImpl.java:313)
		at org.hibernate.validator.cdi@6.0.22.Final//org.hibernate.validator.cdi.ValidationExtension.determineConstrainedCallables(ValidationExtension.java:248)
		at org.hibernate.validator.cdi@6.0.22.Final//org.hibernate.validator.cdi.ValidationExtension.processAnnotatedType(ValidationExtension.java:235)
		at jdk.internal.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:568)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:95)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:85)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:168)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:330)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:123)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:308)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:286)
		at org.jboss.weld.core@3.1.7.SP1//org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessAnnotatedType(ContainerLifecycleEvents.java:207)
		... 14 more

Example Code

public class MyEntry extends Entry {}

I removed the Constraint annotation as it is more or less just a mere hint for the IDEs. Please check, if it works now with 6.0.1+.

If not, please reopen this issue with new details.

It is working now, thank you!