-
Notifications
You must be signed in to change notification settings - Fork 367
Open
Description
Hello everyone,
following up on #5921, I encountered another issue related to aborting Requests.
While MessageBodyWriters are now able to update headers, aborting a Request with a body of List<EntityPart>
and trying to read it afterward still does not work.
Reproducer: https://github.com/Sola-ris/jersey-abort-update-headers-reproducer
For the reproducer I cherry-picked the changes from #5923
and #5926 into the 3.1 branch and built i locally.
Jersey version: 3.1.10
Java version: 21
Run reproducer: ./mvnw clean test
Stacktrace
jakarta.ws.rs.BadRequestException: HTTP 400 Bad Request at org.glassfish.jersey.media.multipart.internal.MultiPartReaderClientSide.readFrom(MultiPartReaderClientSide.java:170) at org.glassfish.jersey.media.multipart.internal.EntityPartReader.readFrom(EntityPartReader.java:78) at org.glassfish.jersey.media.multipart.internal.EntityPartReader.readFrom(EntityPartReader.java:48) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:236) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:215) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:135) at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1072) at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:658) at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:618) at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:342) at org.glassfish.jersey.client.InboundJaxrsResponse$2.call(InboundJaxrsResponse.java:104) at org.glassfish.jersey.internal.Errors.process(Errors.java:292) at org.glassfish.jersey.internal.Errors.process(Errors.java:274) at org.glassfish.jersey.internal.Errors.process(Errors.java:205) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:366) at org.glassfish.jersey.client.InboundJaxrsResponse.runInScopeIfPossible(InboundJaxrsResponse.java:244) at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:101) at org.example.AbortUpdatesHeaderReproducerTest.testAbortUpdatesHeaders(AbortUpdatesHeaderReproducerTest.java:40) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: org.jvnet.mimepull.MIMEParsingException: Missing start boundary at org.jvnet.mimepull.MIMEParser.skipPreamble(MIMEParser.java:288) at org.jvnet.mimepull.MIMEParser.access$300(MIMEParser.java:38) at org.jvnet.mimepull.MIMEParser$MIMEEventIterator.next(MIMEParser.java:124) at org.jvnet.mimepull.MIMEParser$MIMEEventIterator.next(MIMEParser.java:102) at org.jvnet.mimepull.MIMEMessage.makeProgress(MIMEMessage.java:200) at org.jvnet.mimepull.MIMEMessage.parseAll(MIMEMessage.java:160) at org.jvnet.mimepull.MIMEMessage.getAttachments(MIMEMessage.java:86) at org.glassfish.jersey.media.multipart.internal.MultiPartReaderClientSide.getMimeParts(MultiPartReaderClientSide.java:259) at org.glassfish.jersey.media.multipart.internal.MultiPartReaderClientSide.readMultiPart(MultiPartReaderClientSide.java:213) at org.glassfish.jersey.media.multipart.internal.MultiPartReaderClientSide.readFrom(MultiPartReaderClientSide.java:165) ... 20 more
Also, I just noticed I linked the wrong reproducer in #5921, sorry about that. It should have been https://github.com/Sola-ris/jersey-abort-update-headers-reproducer
Metadata
Metadata
Assignees
Labels
No labels