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 <garydgreg...@gmail.com> 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 <ian_robert_ev...@hotmail.com>
> 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: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to