I'm facing an issue that I can't seem to resolve, as I have difficulty identifying the root cause. I hope to find some help here.
I have a web service coded in Java Spring Boot version 2.7.4, with a simple GET endpoint as an example:
@GetMapping("api/datas/options")
public List<Option> getAllOptions(){
return pomppdoptRepository.findAll();
}
I'm trying to send a request to this endpoint using Postman. Here is my Postman configuration:
[https://ibb.co/8n3nfdnP][1]
When I send the request, I do receive a 200 OK response, but when I check my logs, I notice parsing errors.
Logs:
Received [GET /api/datas/options HTTP/1.1
Authorization: Bearer token
User-Agent: PostmanRuntime/7.43.3
Accept: */*
Cache-Control: no-cache
Postman-Token: 57c14232-ed07-4247-a00a-19cf2eb34d5e
Host: localhost:8082
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: JSESSIONID=90155C405D55A5E7968C4617A05BE184
]
Errors:
2025-04-02 10:07:41.383 DEBUG 24432 --- [nio-8082-exec-5] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
java.io.EOFException: null
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1340) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1227) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
2025-04-02 10:07:41.383 DEBUG 24432 --- [nio-8082-exec-5] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request
java.io.EOFException: null
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1340) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1227) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
However, if I immediately resend the request, the error does not appear in the logs. But if I wait for a few minutes and try again, the error comes back.
I would like to resolve this issue because I believe it is related to another problem I am facing when linking multiple APIs using async/sync calls. When I send multiple simultaneous requests, I encounter the same issue again.
application.yml
logging:
level:
org.apache.coyote.http11: DEBUG
org.springframework.web: DEBUG
org.apache.coyote.http11.Http11Processor: DEBUG
server:
tomcat:
threads:
max: 200
min-spare: 10
accesslog:
enabled: true
pattern: "%h %l %u %t \"%r\" %s %b"
connection-timeout: 60000 # 60 secondes
keep-alive-timeout: 60000 # 60 secondes
port: 8082
spring:
datasource:
hikari:
connection-test-query: SELECT 1
maximum-pool-size: 20
minimum-idle: 5
idle-timeout: 60000
max-lifetime: 1800000
connection-timeout: 30000
jpa:
show-sql: true
open-in-view: false
properties:
hibernate:
format_sql: true
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
Has anyone encountered a similar issue or has an idea on how to resolve this?