-
Notifications
You must be signed in to change notification settings - Fork 168
Closed
Description
This issue is present in version 3.0.3
, the error was not occurring in 2.5.2
.
When processing a Kinesis record throws an exception,
the last checkpoint and shard iterator are both Strings but are assumed to be numeric. This causes an error when converting them to BigInteger, and masks the root exception which is never logged.
Stack trace:
Exception in thread "<name>-kinesis-consumer-76843" java.lang.NumberFormatException: For input string: "AAAAAA"
at java.base/java.lang.NumberFormatException.forInputString(Unknown Source)
at java.base/java.lang.Integer.parseInt(Unknown Source)
at java.base/java.math.BigInteger.<init>(Unknown Source)
at java.base/java.math.BigInteger.<init>(Unknown Source)
at org.springframework.integration.aws.inbound.kinesis.KinesisMessageDrivenChannelAdapter$ShardConsumer.rewindIteratorOnError(KinesisMessageDrivenChannelAdapter.java:1161)
at org.springframework.integration.aws.inbound.kinesis.KinesisMessageDrivenChannelAdapter$ShardConsumer.lambda$processTask$8(KinesisMessageDrivenChannelAdapter.java:1098)
and
Exception in thread "<name>-kinesis-consumer-90642" java.lang.NumberFormatException: Illegal embedded sign character
at java.base/java.math.BigInteger.<init>(Unknown Source)
at java.base/java.math.BigInteger.<init>(Unknown Source)
at org.springframework.integration.aws.inbound.kinesis.KinesisMessageDrivenChannelAdapter$ShardConsumer.rewindIteratorOnError(KinesisMessageDrivenChannelAdapter.java:1161)
at org.springframework.integration.aws.inbound.kinesis.KinesisMessageDrivenChannelAdapter$ShardConsumer.lambda$processTask$8(KinesisMessageDrivenChannelAdapter.java:1098)
Problem is in KinesisMessageDrivenChannelAdapter:1161
else if (lastCheckpoint == null
|| new BigInteger(lastCheckpoint).compareTo(new BigInteger(this.shardIterator)) < 0) {
durimkryeziu