java.lang.IllegalStateException: closed
at okio.RealBufferedSource.select(RealBufferedSource.kt:244)
at okhttp3.internal._UtilJvmKt.readBomAsCharset(-UtilJvm.kt:88)
at okhttp3.ResponseBody.string(ResponseBody.kt:190)
at io.agentscope.core.rag.integration.ragflow.RAGFlowClient.lambda$retrieve$1(RAGFlowClient.java:219)
at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:134)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:172)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2361)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:75)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48)
at reactor.core.publisher.Mono.subscribe(Mono.java:4569)
at reactor.core.publisher.Mono.block(Mono.java:1772)
错误发生在RAGFlowClient第219行:response.body().string()。这个问题是因为:
1、响应体只能读取一次 - 一旦调用了 response.body().string(),响应流就被消费了
2、重试机制可能导致连接关闭 - 在重试过程中,之前的响应连接被关闭
3、try-with-resources 自动关闭 - try (Response response = ...) 会自动关闭响应
问题在于当网络超时或连接问题发生时,重试机制可能无法正确处理已经部分读取的响应。
java.lang.IllegalStateException: closed
at okio.RealBufferedSource.select(RealBufferedSource.kt:244)
at okhttp3.internal._UtilJvmKt.readBomAsCharset(-UtilJvm.kt:88)
at okhttp3.ResponseBody.string(ResponseBody.kt:190)
at io.agentscope.core.rag.integration.ragflow.RAGFlowClient.lambda$retrieve$1(RAGFlowClient.java:219)
at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:134)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:172)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2361)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:75)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48)
at reactor.core.publisher.Mono.subscribe(Mono.java:4569)
at reactor.core.publisher.Mono.block(Mono.java:1772)
错误发生在RAGFlowClient第219行:response.body().string()。这个问题是因为:
1、响应体只能读取一次 - 一旦调用了 response.body().string(),响应流就被消费了
2、重试机制可能导致连接关闭 - 在重试过程中,之前的响应连接被关闭
3、try-with-resources 自动关闭 - try (Response response = ...) 会自动关闭响应
问题在于当网络超时或连接问题发生时,重试机制可能无法正确处理已经部分读取的响应。