Closed
Description
zkz2004 opened DATAREDIS-1210 and commented
hi,
the checked 2.4.0-M1 code and newest code in master branch of spring-data-redis
StreamReadOptions toString method is as below
@Override
public String toString() {
return "StreamReadOptions{" + "block=" + block + ", count=" + count + ", noack=" + noack + ", autoAcknowledge="
+ autoAcknowledge() + ", blocking=" + isBlocking() + '}';
}
public StreamReadOptions autoAcknowledge() {
return new StreamReadOptions(block, count, true);
}
as autoAcknowledge() will return StreamReadOptions, this cause StringBuilder append be called infinitely, which cause StackOverflowError.
Exception in thread "main" java.lang.StackOverflowErrorException in thread "main" java.lang.StackOverflowError at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:228) at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:593) at java.base/java.lang.StringBuilder.append(StringBuilder.java:173) at org.springframework.data.redis.connection.stream.StreamReadOptions.toString(StreamReadOptions.java:127)
Affects: 2.4 M2 (2020.0.0)
Referenced from: pull request #557