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

Rastislav Papp commented on CAMEL-16197:
----------------------------------------

[~mash-sap], [~davsclaus], I have a route like this:

{code}
from("cxf:bean:publishedEndpoint")
   //...
   .enrich("direct:integratedEndpoint", 
AggregationStrategies.flexible().storeInBody())
   //...
;

from("direct:integratedEndpoint")
   .to("cxf:bean:integratedEndpoint");

{code}

Until this ticket got implemented (using camel 3.7.x) attachments returned from 
{{cxf:bean:integratedEndpoint}} got populated into the published endpoint 
response. Now after upgrading to camel 3.14.x, the attachment is still there in 
the response, but empty. I suspect this is the culprit. When I set enrich's 
shareUnitOfWork=true, the problem is gone.

Should I create a separate bug for this, or is my use case (integrated soap ws 
called via enrich EIP) not the proper usage? I'm doing it mainly because when 
having combinations of published / integrated cxf endpoints in a route, each of 
them having different dataFormat, using {{.to}} leaks data from one to the 
other.

> CXF Attachment stay in file system after processing if file attachments has 
> not been used
> -----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-16197
>                 URL: https://issues.apache.org/jira/browse/CAMEL-16197
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-cxf
>    Affects Versions: 2.25.3
>            Reporter: Manuel Shenavai
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 3.10.0
>
>         Attachments: attachment2.zip, attachments.3.7.zip, attachments.zip
>
>
> Hi everyone,
>  
> we are using the camel CXF component and found that the cleanup of cached 
> attachments is not working as expected. CXF will persist attachments to disk 
> whenever they exceed a certain limit in size: [cxf 
> source|https://github.com/apache/cxf/blob/3.2.x-fixes/core/src/main/java/org/apache/cxf/io/CachedOutputStream.java#L433]
>  If the attachments are consumed within the route, i.e. when they are used to 
> send a message, the files will be removed from the filesystem. In case they 
> are not used at all, the files will stay in the filesystem. So the CXF 
> component somehow assumes that the attachments are consumed within the route.
>  
> Example
> We send a message that contains a attachment to a CXF endpoint. The 
> attachment-size exceeds the size threshold and therefore will be persisted to 
> disk. During message processing the attachment will not be used (the endpoint 
> is oneway and attachments are not used within the route). After message 
> processing, the file stays in the filesystem.
>  
> Reproduce with attached example project:
>  # Start the Server.java test (starts the server taking the requests)
>  # Start the Client.java (sends a request to the server)
>  # Check the temp folder (printed in console by Client.java, in my case 
> “C:\Users\me\AppData\Local\Temp\cxf-tmp-3330821712753099698)
>  # Repeat executing Client.java and find for each run a new tmp-file
>  
> Due to this file leaks, the filesystem will be filled up over time.  
> Best regards,
> Manuel



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to