[
https://issues.apache.org/jira/browse/CXF-3504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13036781#comment-13036781
]
ext2 commented on CXF-3504:
---------------------------
@FreeMan Fang:
My private temporary fix is quite different;the strategy I am using is:
"doesn't make attachments pre cached" but "make delegate input stream always
work right"; That's to say if using sun's activation. my private fix will still
keep all attachment being delegate inputstream(doesn't cach any one);
key fixed as following :
1)avoid recursive calling to DelegateInputStream's close
boolean closing = false;
DelegateInputStream.close{
if(!closing){
closing = true;
is.close();
if (!isClosed && deserializer != null) {
deserializer.markClosed(this);
}
isClosed = true;
}
}
2) consume all underlying bytes while close MIMEPartInputStream()-->(avoid mis
read MIME part: for example, if user just close first attachment, and doesn't
read it, then read second attachment)
MIMEPartInputStream.close(){
while(read() >= 0)
;
}
now using sun's activation will be better than geronimo; because the
attachment's content will never be cached if user doesnt' care about content of
the attachment
> for big attachment, a temporary file is left on disk and keep opend, if the
> application just close the DataSource's inputStream and doesn't consume it;
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CXF-3504
> URL: https://issues.apache.org/jira/browse/CXF-3504
> Project: CXF
> Issue Type: Bug
> Affects Versions: 2.4
> Reporter: ext2
> Assignee: Freeman Fang
> Fix For: 2.4.1, 2.3.5
>
> Attachments: CXF-3504-new.patch, CXF-3504.patch,
> attachment-clean.zip, mtom.wsdl
>
>
> when the client receiving multiple larget attachments from server. here
> "large" means : attachment size is large enough to be saved as temporary file
> on disk;
> for the last attachment, if the user application only close the input stream
> got from DataSource and doesn't consume the input stream at all, a temporary
> file will be left on the disk.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira