AndrewJSchofield commented on code in PR #23457:
URL: https://github.com/apache/kafka/pull/23457#discussion_r4014732036


##########
generator/src/main/java/org/apache/kafka/message/HeaderVersions.java:
##########
@@ -144,10 +144,10 @@ private static void validate(String messageName, 
List<Entry> entries, Versions v
                     ", but it starts at version " + current.lowest() + ".");
             }
             if (currentEntry.headerVersion < previousEntry.headerVersion) {
-                throw new RuntimeException("Message " + messageName + " maps 
the higher body versions " + current +
+                throw new RuntimeException("Message " + messageName + " maps 
the higher message versions " + current +

Review Comment:
   Maybe "higher message version range" instead of "higher message versions" to 
match the later part of the sentence better.



##########
generator/src/main/java/org/apache/kafka/message/MessageSpec.java:
##########
@@ -167,14 +164,31 @@ void checkHeaderVersions(MessageSpec requestHeader, 
MessageSpec responseHeader)
                 }
                 continue;
             }
-            checkFlexibleBodyUsesFlexibleHeader(entry, typeName, 
headerIsFlexible, firstFlexibleHeader);
+            checkFlexibleVersionUsesFlexibleHeader(entry, typeName, 
headerIsFlexible, firstFlexibleHeader);
+        }
+    }
+
+    /**
+     * Check that {@code entry}'s header version is one the header schema 
defines (within its valid range).
+     */
+    private void checkHeaderVersionExists(HeaderVersions.Entry entry, String 
typeName,
+                                          short lowestHeader, short 
highestHeader) {
+        if (entry.headerVersion() > highestHeader) {
+            throw new RuntimeException("Message " + name() + " maps versions " 
+ entry.range() + " to " +
+                typeName + " header version " + entry.headerVersion() + ", 
which does not exist; the highest " +
+                typeName + " header version is " + highestHeader + ".");
+        }
+        if (entry.headerVersion() < lowestHeader) {
+            throw new RuntimeException("Message " + name() + " maps versions " 
+ entry.range() + " to " +
+                typeName + " header version " + entry.headerVersion() + ", 
which does not exist; the lowest " +
+                typeName + " header version is " + lowestHeader + ".");
         }
     }
 
     /**
-     * Check that every flexible body version in {@code entry} maps to a 
flexible header version.
+     * Check that every flexible message version in {@code entry} maps to a 
flexible header version.
      */
-    private void checkFlexibleBodyUsesFlexibleHeader(HeaderVersions.Entry 
entry, String typeName,
+    private void checkFlexibleVersionUsesFlexibleHeader(HeaderVersions.Entry 
entry, String typeName,
                                                      boolean headerIsFlexible, 
short firstFlexibleHeader) {

Review Comment:
   nit: Indentation should increase by 3 spaces :) 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to