hi! anyone experience this exception when using th...
# ktor
b
hi! anyone experience this exception when using the Apache HTTP client? java.lang.IllegalStateException: Unexpected request state READY
full stack
Copy code
Exception in thread "main" java.lang.IllegalStateException: Unexpected request state READY
        at org.apache.http.util.Asserts.check(Asserts.java:46)
        at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.outputReady(HttpAsyncRequestExecutor.java:231)
        at org.apache.http.impl.nio.DefaultNHttpClientConnection.produceOutput(DefaultNHttpClientConnection.java:290)
        at org.apache.http.impl.nio.client.InternalIODispatch.onOutputReady(InternalIODispatch.java:86)
        at org.apache.http.impl.nio.client.InternalIODispatch.onOutputReady(InternalIODispatch.java:39)
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:145)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:188)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:341)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
        at java.lang.Thread.run(Thread.java:748)
i am trying to upload a lot of files
protocode
Copy code
filesToUpload.windowed(batchSize, batchSize, true).forEach { batch ->
                    val millis = System.currentTimeMillis()
                    batch.map { file ->
                        async(client.coroutineContext) {
                            client.call {
                                url("$baseUrl/api/matrices/${file.nameWithoutExtension}/uploadByName")
                                method = <http://HttpMethod.Post|HttpMethod.Post>
                                body = MultiPartFormDataContent(formData {
                                    appendInput("file", headersOf(HttpHeaders.ContentDisposition,
                                            ContentDisposition.File
                                                    .withParameter(ContentDisposition.Parameters.Name, "file")
                                                    .withParameter(ContentDisposition.Parameters.FileName, "file.txt")
                                                    .toString())) {
                                        file.inputStream().asInput()
                                    }
                                })
                            }.use { call ->
                              //handle response
                        }
                    }.awaitAll()
too much concurrency? batchsize is 100
👀 1