diff --git a/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java b/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java index 59b559f2b4d9..e71388bc999d 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java @@ -46,7 +46,7 @@ description = "Miscellaneous logging related to Hibernate ORM Core" ) @MessageLogger(projectCode = "HHH") -@ValidIdRange(max = 8000) +@ValidIdRange(min = 1, max = 8000) @Internal public interface CoreMessageLogger extends BasicLogger { diff --git a/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java b/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java index bc01c532a1ce..45d4ec7526b1 100644 --- a/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java +++ b/local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java @@ -21,6 +21,7 @@ import org.gradle.api.tasks.TaskAction; import org.jboss.jandex.AnnotationInstance; +import org.jboss.jandex.AnnotationValue; import org.jboss.jandex.ClassInfo; import org.jboss.jandex.DotName; import org.jboss.jandex.Index; @@ -95,8 +96,8 @@ public void generateLoggingReport() { } else { idRange = new IdRange( - idRangeAnnUsage.value( "min" ).asInt(), - idRangeAnnUsage.value( "max" ).asInt(), + asIntOrDefault( idRangeAnnUsage, "min" , 1 ), + asIntOrDefault( idRangeAnnUsage, "max" , 999999 ), true, loggerClassInfo.simpleName(), subSystem @@ -129,7 +130,7 @@ private IdRange calculateIdRange(AnnotationInstance msgLoggerAnnUsage, SubSystem for ( int i = 0; i < messageAnnUsages.size(); i++ ) { final AnnotationInstance msgAnnUsage = messageAnnUsages.get( i ); - final int msgId = msgAnnUsage.value( "id" ).asInt(); + final int msgId = asIntOrDefault( msgAnnUsage, "id", -1 ); if ( msgId < minId ) { minId = msgId; @@ -332,4 +333,13 @@ public String getLabel() { return minValueText + " - " + maxValueText; } } + + private int asIntOrDefault(AnnotationInstance instance, String param, int defaultValue) { + final AnnotationValue value = instance.value( param ); + if ( value == null ) { + getLogger().warn( "Explicit value for [{}] was not provided at {}! ", param, instance.target() ); + return defaultValue; + } + return value.asInt(); + } }