Uploaded image for project: 'Commons Email'
  1. Commons Email
  2. EMAIL-120

attach(DataSource xx) doesn't close inputstream

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2
    • 1.3
    • 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

      Attachments

        Activity

          People

            Unassigned Unassigned
            mikebell90 mike bell
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: