[ 
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

Reply via email to