Skip to content

Commit 6a95a1c

Browse files
marko-bekhtadreab8
authored andcommitted
HHH-19806 Make LoggingReportTask more resilient to missing annotation values
1 parent c5e483e commit 6a95a1c

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
description = "Miscellaneous logging related to Hibernate ORM Core"
4747
)
4848
@MessageLogger(projectCode = "HHH")
49-
@ValidIdRange(max = 8000)
49+
@ValidIdRange(min = 1, max = 8000)
5050
@Internal
5151
public interface CoreMessageLogger extends BasicLogger {
5252

local-build-plugins/src/main/java/org/hibernate/orm/post/LoggingReportTask.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.gradle.api.tasks.TaskAction;
2222

2323
import org.jboss.jandex.AnnotationInstance;
24+
import org.jboss.jandex.AnnotationValue;
2425
import org.jboss.jandex.ClassInfo;
2526
import org.jboss.jandex.DotName;
2627
import org.jboss.jandex.Index;
@@ -95,8 +96,8 @@ public void generateLoggingReport() {
9596
}
9697
else {
9798
idRange = new IdRange(
98-
idRangeAnnUsage.value( "min" ).asInt(),
99-
idRangeAnnUsage.value( "max" ).asInt(),
99+
asIntOrDefault( idRangeAnnUsage, "min" , 1 ),
100+
asIntOrDefault( idRangeAnnUsage, "max" , 999999 ),
100101
true,
101102
loggerClassInfo.simpleName(),
102103
subSystem
@@ -129,7 +130,7 @@ private IdRange calculateIdRange(AnnotationInstance msgLoggerAnnUsage, SubSystem
129130

130131
for ( int i = 0; i < messageAnnUsages.size(); i++ ) {
131132
final AnnotationInstance msgAnnUsage = messageAnnUsages.get( i );
132-
final int msgId = msgAnnUsage.value( "id" ).asInt();
133+
final int msgId = asIntOrDefault( msgAnnUsage, "id", -1 );
133134

134135
if ( msgId < minId ) {
135136
minId = msgId;
@@ -332,4 +333,13 @@ public String getLabel() {
332333
return minValueText + " - " + maxValueText;
333334
}
334335
}
336+
337+
private int asIntOrDefault(AnnotationInstance instance, String param, int defaultValue) {
338+
final AnnotationValue value = instance.value( param );
339+
if ( value == null ) {
340+
getLogger().warn( "Explicit value for [{}] was not provided at {}! ", param, instance.target() );
341+
return defaultValue;
342+
}
343+
return value.asInt();
344+
}
335345
}

0 commit comments

Comments
 (0)