Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.2
-
None
-
Windows 7, 64 bit
Description
Basically I have code like shown below.
message.attach(reports[1].getDatasource(),
"Report" + new SimpleDateFormat("yyyymmdd").format(new java.util.Date()) + "." + selectedAttachment,
selectedAttachment.toUpperCase() + " version of report");
Where the DataSource in question is a simple JAF FileDataSource.
What I found [when I found files were not being cleaned up by my cleaner)
1. I can delete the backing file before calling this method
2. I cannot delete the backing file after calling this method.
3. Workaround uses the URL version of attachment.
DataSource ds=reports[1].getDatasource();
FileDataSource fds=(FileDataSource) ds;
URL url=fds.getFile().toURI().toURL();
/**
- MJB: We don't use the DataSource directly (as we should) because of a bug in Commons Email
- where it usually doesn't close the inputstream
*/
message.attach(url,"Report" + new SimpleDateFormat("yyyymmdd").format(new java.util.Date()) + "." + selectedAttachment,
selectedAttachment.toUpperCase() + " version of report");
4. I therefore assume the inputstream has been opened and never closed.
5. Same test after calling send() provides same results