Skip to content

Commit 9d31ec1

Browse files
authored
1. Change the remaining results to a stream of the result array instead of the cached list. (#162)
2. Use the common doOnTerminate() operator to clean up the result handler
1 parent d8d69ea commit 9d31ec1

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

mybatis-r2dbc/src/main/java/pro/chenggang/project/reactive/mybatis/support/r2dbc/executor/DefaultReactiveMybatisExecutor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,8 +254,11 @@ protected <E> Flux<E> doQueryWithConnection(Connection connection, MappedStateme
254254
})
255255
.doOnComplete(() -> {
256256
//clean up reactiveResultHandler
257-
reactiveResultHandler.cleanup();
258257
r2dbcStatementLog.logTotal(reactiveResultHandler.getResultRowTotalCount());
258+
})
259+
.doOnTerminate(() -> {
260+
//clean up reactiveResultHandler
261+
reactiveResultHandler.cleanup();
259262
});
260263
}));
261264

mybatis-r2dbc/src/main/java/pro/chenggang/project/reactive/mybatis/support/r2dbc/executor/result/handler/DefaultReactiveResultHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import java.util.Optional;
6767
import java.util.Set;
6868
import java.util.concurrent.atomic.LongAdder;
69+
import java.util.stream.Stream;
6970

7071
/**
7172
* The type Default reactive result handler.
@@ -185,8 +186,7 @@ public <T> Mono<T> handleOutputParameters(ReadableResultWrapper<? extends Readab
185186
@SuppressWarnings("unchecked")
186187
@Override
187188
public <T> Flux<T> getRemainedResults() {
188-
return (Flux<T>) Flux.fromIterable(this.resultHolder)
189-
.filter(Objects::nonNull);
189+
return (Flux<T>) Flux.fromStream(Stream.of(this.resultHolder.toArray()).filter(Objects::nonNull));
190190
}
191191

192192
@Override

0 commit comments

Comments
 (0)