Hello,
I've tried to check this one :)
Modified this test:
commons-fileupload2-jakarta-servlet5/src/test/java/org/apache/commons/fileupload2/jakarta/servlet5/JakartaServletFileUploadTest.java
Add this block at the bottom:
```
final var itemCount = new AtomicInteger(0);
upload.getItemIterator(new JakartaMockServletHttpRequest(bytes,
Constants.CONTENT_TYPE)).forEachRemaining(item -> {
String name = item.getFieldName();
InputStream stream = item.getInputStream();
if (item.isFormField()) {
System.out.println("Form field " + name + " with value " + "
detected.");
} else {
System.out.println("File field " + name + " with file name " +
item.getName() + " detected.");
// Process the input stream
}
});
assertEquals(4, itemCount.get());
```
The test is GREEN
BUT
if i try to reuse previously created request like this:
```
upload.getItemIterator(request).forEachRemaining(item -> {
```
The test will fail
Is it be possible request was already iterated before
`forEachRemaining` was called?
On Thu, 28 Sept 2023 at 08:31, Gary Gregory <[email protected]> wrote:
>
> Hi,
>
> The best way to help would be to provide a PR on GitHub with a failing
> test, and if you find it, a fix.
>
> Gary
>
>
> On Wed, Sep 27, 2023, 7:33 PM Ian Evans <[email protected]>
> wrote:
>
> > Using the following library:
> >
> > <dependency>
> > <groupId>org.apache.commons</groupId>
> > <artifactId>commons-fileupload2-jakarta</artifactId>
> > <version>2.0.0-M1</version>
> > </dependency>
> >
> > The Streaming API (documented here FileUpload – The Streaming API (
> > apache.org)<
> > https://commons.apache.org/proper/commons-fileupload/streaming.html>)
> > does not return any items. I've tested the following code using postman and
> > curl to send a multipart/form-data request, in both cases getItemIterator
> > fails to return any items (internally it seems an exceptio is thrown):
> >
> >
> > public ResponseEntity<Void> upload(HttpServletRequest request) throws
> > IOException {
> > if (!JakartaServletFileUpload.isMultipartContent(request)) {
> > throw new IllegalArgumentException("not multipart");
> > }
> >
> > JakartaServletFileUpload upload = new JakartaServletFileUpload();
> >
> > upload.getItemIterator(request).forEachRemaining(item -> {
> > String name = item.getFieldName();
> > InputStream stream = item.getInputStream();
> > if (item.isFormField()) {
> > System.out.println("Form field " + name + " with value "
> > + convertInputStreamToString(stream) + "
> > detected.");
> > } else {
> > System.out.println("File field " + name + " with file name
> > "
> > + item.getName() + " detected.");
> > // Process the input stream
> > }
> > });
> > ...
> > }
> >
> > If I can help diagnose the issue in any way I'm more than happy.
> >
> >
> >
> >
--
Best regards,
Maxim
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]