For the R2DBC client, in ClickHouseResult class, the map method implementation logs but doesn't propagate exceptions. However, in the same class the flatMap method implementation both logs and propagates exceptions. See code:
Any error triggered within the biFunction argument passed to map will be logged but not propagated. For instance, just throw a new IllegalArgumentException.
Exception is logged but not propagated.
Expected behaviour
Unpropagated exceptions highly increases the chances of errors being unnoticed, unless logs are observed or analysed.
The expected behaviour is propagating the exception, like flatMap method does.
Code example
import io.r2dbc.spi.ConnectionFactory;
import reactor.core.publisher.Mono;
public class ClickHouseRepository {
ConnectionFactory connectionFactory;
Mono<Void> example() {
return Mono.from(connectionFactory.create())
.flatMapMany(connection -> connection.createStatement("SELECT 1").execute())
.map(result -> result.map((row, rowMetadata) -> new IllegalArgumentException()))
.then();
}
}
Error log
Provided function caused exception: IllegalArgumentException
However, exception is just logged and not propagated.
Configuration
Environment
Client version: 0.6.5.
Language version: Java.
OS: Mac, Linux.
ClickHouse server
ClickHouse Server version: 24.3.8.13.
ClickHouse Server non-default settings, if any: N/A.
Describe the bug
For the R2DBC client, in
ClickHouseResult
class, themap
method implementation logs but doesn't propagate exceptions. However, in the same class theflatMap
method implementation both logs and propagates exceptions. See code:Steps to reproduce
Result
object.biFunction
argument passed tomap
will be logged but not propagated. For instance, just throw a newIllegalArgumentException
.Expected behaviour
Unpropagated exceptions highly increases the chances of errors being unnoticed, unless logs are observed or analysed.
The expected behaviour is propagating the exception, like
flatMap
method does.Code example
Error log
However, exception is just logged and not propagated.
Configuration
Environment
ClickHouse server
CREATE TABLE
statements for tables involved: N/A.