You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Lucian Burja (JIRA)" <ji...@apache.org> on 2017/02/23 15:39:44 UTC

[jira] [Updated] (EMAIL-167) DataSourceClassPathResolver doesn't close InputStream when resolving resources

     [ https://issues.apache.org/jira/browse/EMAIL-167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lucian Burja updated EMAIL-167:
-------------------------------
    Description: 
DataSourceClassPathResolver opens an InputStream (via .class.getResourceAsStream) to read a resource into a ByteArrayDataSource, but never closes it:
{code}
    public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException
    {
...
                final InputStream is = DataSourceClassPathResolver.class.getResourceAsStream(resourceName);

                if (is != null)
                {
                    final ByteArrayDataSource ds = new ByteArrayDataSource(is, mimeType);
                    // EMAIL-125: set the name of the DataSource to the normalized resource URL
                    // similar to other DataSource implementations, e.g. FileDataSource, URLDataSource
                    ds.setName(DataSourceClassPathResolver.class.getResource(resourceName).toString());
                    result = ds;
                }
{code}
The 'is' variable above should be closed in a try ... finally

  was:
DataSourceClassPathResolver opens an InputStream (via .class.getResourceAsStream) to read a resource into a ByteArrayDataSource, but never closes it:

    public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException
    {
...
                final InputStream is = DataSourceClassPathResolver.class.getResourceAsStream(resourceName);

                if (is != null)
                {
                    final ByteArrayDataSource ds = new ByteArrayDataSource(is, mimeType);
                    // EMAIL-125: set the name of the DataSource to the normalized resource URL
                    // similar to other DataSource implementations, e.g. FileDataSource, URLDataSource
                    ds.setName(DataSourceClassPathResolver.class.getResource(resourceName).toString());
                    result = ds;
                }

The 'is' variable above should be closed in a try ... finally


> DataSourceClassPathResolver doesn't close InputStream when resolving resources
> ------------------------------------------------------------------------------
>
>                 Key: EMAIL-167
>                 URL: https://issues.apache.org/jira/browse/EMAIL-167
>             Project: Commons Email
>          Issue Type: Bug
>    Affects Versions: 1.4
>            Reporter: Lucian Burja
>
> DataSourceClassPathResolver opens an InputStream (via .class.getResourceAsStream) to read a resource into a ByteArrayDataSource, but never closes it:
> {code}
>     public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException
>     {
> ...
>                 final InputStream is = DataSourceClassPathResolver.class.getResourceAsStream(resourceName);
>                 if (is != null)
>                 {
>                     final ByteArrayDataSource ds = new ByteArrayDataSource(is, mimeType);
>                     // EMAIL-125: set the name of the DataSource to the normalized resource URL
>                     // similar to other DataSource implementations, e.g. FileDataSource, URLDataSource
>                     ds.setName(DataSourceClassPathResolver.class.getResource(resourceName).toString());
>                     result = ds;
>                 }
> {code}
> The 'is' variable above should be closed in a try ... finally



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)