[
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)