[ 
https://issues.apache.org/jira/browse/KAFKA-7787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17074447#comment-17074447
 ] 

Tom Bentley commented on KAFKA-7787:
------------------------------------

[~cmccabe] any more thoughts about this (did you notice I opened a PR in case 
you wanted to take a look?)

{quote}In the case of Errors, we need to associate each enum with a 
corresponding exception. I guess we could have a helper class for this.
{quote}
 
Can you elaborate on what you're envisaging there? I played around with 
generating functions for mapping between codes and enum elements, via a 
"enumClass" key in the codes declaration:

{code}
{
  "type": "codes",
  "name": "ErrorCodes",
  "valueType": "int16",
  "enumClass": "org.apache.kafka.common.protocol.Errors",
  "codes": [
    { "name": "UNKNOWN_SERVER_ERROR", "value":  -1,
      "about": "The server experienced an unexpected error when processing the 
request." },
    { "name": "NONE", "value":  0,
      "about": "No error." },
{code}

Obviously for error codes we can use {{Errors}} and from that obtain the 
exception class, but that might also be useful for the other code enums.

The other thing I'm struggling with a bit is how we can correctly specify the 
valid versions for each error code at the use site, e.g. 

{code}
 {
  "name": "ErrorCode",
  "type": "int16",
  "domain": {
    "name": "ErrorCodes",
    "values": [
      { "name": "NONE", "validVersions": "0+" },
      { "name": "FOO", "validVersions": "0+" },
      { "name": "BAR", "validVersions": "3+" },
      ...
    ]
   }
 }
{code}

Determining correctly what error codes can propagate from a given RPC is 
difficult enough even for the _current version_ of an API. 

Do you have any ideas for a testing methodology?

> Add error specifications to KAFKA-7609
> --------------------------------------
>
>                 Key: KAFKA-7787
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7787
>             Project: Kafka
>          Issue Type: Sub-task
>            Reporter: Colin McCabe
>            Assignee: Tom Bentley
>            Priority: Minor
>
> In our RPC JSON, it would be nice if we could specify what versions of a 
> response could contain what errors.  See the discussion here: 
> https://github.com/apache/kafka/pull/5893#discussion_r244841051



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to