1

I am using Wiremock (which appears to use jetty) to stub some http responses.

I am sending a multipart http request but Wiremock/jetty responds to with a 500 error and some html which details a MalformedStreamException.

This has only broken since a version upgrade of Wiremock from 2.31.0 to 2.32.0.

I am sending the following request in Postman to my stub endpoint:

Headers

Content-Type: multipart/related; boundary=xxx

Request body

--xxx
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<test></test>

--xxx
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<test></test>

--xxx--

Error

Caused by: wiremock.org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly
    at wiremock.org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)
    at com.github.tomakehurst.wiremock.http.multipart.PartParser.parseFrom(PartParser.java:51)
    at com.github.tomakehurst.wiremock.servlet.WireMockHttpServletRequestAdapter.getParts(WireMockHttpServletRequestAdapter.java:286)
    at com.github.tomakehurst.wiremock.verification.LoggedRequest.createFrom(LoggedRequest.java:71)
    at com.github.tomakehurst.wiremock.stubbing.InMemoryStubMappings.serveFor(InMemoryStubMappings.java:88)
    at com.github.tomakehurst.wiremock.core.WireMockApp.serveStubFor(WireMockApp.java:226)
    at com.github.tomakehurst.wiremock.http.StubRequestHandler.handleRequest(StubRequestHandler.java:57)
    at com.github.tomakehurst.wiremock.http.AbstractRequestHandler.handle(AbstractRequestHandler.java:69)
    at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.service(WireMockHandlerDispatchingServlet.java:142)
    at wiremock.javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at wiremock.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
    at wiremock.org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
    at wiremock.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
    at wiremock.org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
    at wiremock.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
    at wiremock.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at wiremock.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
    at wiremock.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
    at wiremock.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
    at wiremock.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at wiremock.org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:763)
    at wiremock.org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
    ... 17 more
Caused by: wiremock.org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
    at wiremock.org.apache.commons.fileupload.MultipartStream.readHeaders(MultipartStream.java:570)
    at wiremock.org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:1052)
    at wiremock.org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.&lt;init&gt;(FileUploadBase.java:1017)
    at wiremock.org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:309)
    at wiremock.org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:333)
    ... 38 more

Can anyone spot anything I am doing wrong or have any suggestions of things to rule out or try?

Could there be a bug in Wiremock or one of its dependences or is my multipart request malformed?

Update I've opened a bug on Github: https://github.com/wiremock/wiremock/issues/1973

David Spence
  • 7,999
  • 3
  • 39
  • 63
  • Did you try looking at the line endings as outlined with this query https://stackoverflow.com/questions/53500627/malformedstreamexception-stream-ended-unexpectedly – eVolve Jul 17 '22 at 11:03

0 Answers0