[ 
https://issues.apache.org/jira/browse/CXF-8554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17515316#comment-17515316
 ] 

Henri ENEE commented on CXF-8554:
---------------------------------

Hi Fadi,

The issue is reproducible if you comment out the following two lines of code in 
your test, 

_ContentDisposition cd = new ContentDisposition("form-data; 
name=\"file\";filename=\"test.txt\"");
atts.add(new Attachment("file", new 
ByteArrayInputStream("testContent".getBytes()), cd));_

In this case, the output is
_title: title here
description: description here
The set is: [title=[], description=[description here]]_


> org.apache.cxf.jaxrs.ext.MessageContextImpl.createAttachments first 
> attachment input stream is null
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-8554
>                 URL: https://issues.apache.org/jira/browse/CXF-8554
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.3.6
>            Reporter: Henri ENEE
>            Priority: Blocker
>
> I need to get the attachments map, but the first attachment is still empty. 
> I think the issue comes from the method 
> org.apache.cxf.jaxrs.ext.MessageContextImpl.createAttachments line 292
> The first attachment is loaded with the following method 
> "inMessage.getContent(InputStream.class)"
> but the InputStream is not buffered and so I think when i want to read this 
> value later in my code, the stream is closed and I get an empty string.
>  
> {code:java}
> @POST
> @Path("")
> @Consumes(MediaType.MULTIPART_FORM_DATA)
> @Description("Create a task")
> public void createTask(
>       @Multipart(value = "title", type = "text/plain", required = false) 
> final String title,
>       @Multipart(value = "description", type = "text/plain", required = 
> false) final String description,
>       @javax.ws.rs.core.Context final MessageContext mc) throws 
> MatrixException {
>       /* param well filled */
>       System.out.println("title: " + title); 
>       // >title: myTitle
>       System.out.println("description: " + description); 
>       // >description: myDescription
>       /* first attachment of attachment map is empty */
>       final MultivaluedMap<String, String> attachmentMap = 
> AttachmentUtils.populateFormMap(mc);
>       System.out.println("The set is: " + attachmentMap.entrySet()); 
>       // >The set is: [title=[], description=[myDescription]]
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to