Java ccloud CLI-索引超出范围[0],长度为0

Java ccloud CLI-索引超出范围[0],长度为0,java,apache-kafka,spring-cloud-stream,confluent-cloud,Java,Apache Kafka,Spring Cloud Stream,Confluent Cloud,运行 ccloud kafka主题消费-b——打印键 以错误结束:panic:runtime错误:索引超出范围[0],长度为0 我想知道的是,这是否是可能发生的事情,或者我在本主题中看到的是某种损坏的数据 我之所以问这个问题,是因为我在一个使用主题的服务中得到了一个空指针异常,我不确定为什么会发生这种情况,因为我希望即使在墓碑记录的情况下,key也不会为空,但value可以为空(如果墓碑记录,则为空)。因此,在过滤掉值为null的消息后,我不知道还能做什么 [编辑]:当我尝试使用合流kafka

运行

ccloud kafka主题消费-b——打印键
以错误结束:
panic:runtime错误:索引超出范围[0],长度为0

我想知道的是,这是否是可能发生的事情,或者我在本主题中看到的是某种损坏的数据

我之所以问这个问题,是因为我在一个使用主题的服务中得到了一个空指针异常,我不确定为什么会发生这种情况,因为我希望即使在墓碑记录的情况下,
key
也不会为空,但
value
可以为空(如果墓碑记录,则为空)。因此,在过滤掉值为
null
的消息后,我不知道还能做什么

[编辑]:当我尝试使用
合流kafka python
库执行相同的操作时,我没有得到任何错误,但在这个过程中确实得到一些空记录。 现在看来,从主题读取代码时出现的错误可以通过过滤掉空值来解决

.filter((键,值)->key!=null | | value!=null)

我本以为
null
键被跳过了


[EDIT 2]已连接到我的另一个但相关的问题,此处未描述。我不知道
.toStream()
在与另一个
KTable
连接后,将向下推链一个墓碑记录。

在卡夫卡中不会跳过空键Streams@OneCricketeer好的,我知道如果数据流化,它们不会被跳过,但例如在join中,它们应该被忽略吗?我遇到的这个问题与第二个问题有关,在第二个问题中,我尝试进行连接,最终得到NPE,在NPE中我希望忽略空键,并且我“仅”必须过滤掉空值消息。流上的连接假设您有一个非空键,需要对其进行预过滤。如果要连接两个表,那么不应该有任何空键,但仍然可以有空值。我理解,但我不知道的是,在连接两个表之后,然后将结果转换为流(),然后我也会收到一条墓碑消息,然后该消息将具有
值==null
。我没想到我在两张桌子上进行连接后会收到一条墓碑消息。我相信,云总是试图反序列化ByteArray。如果反序列化程序失败,Python库将返回None
ccloud kafka topic consume <topic> -b --print-key