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

Kristian Waagan updated DERBY-4717:
-----------------------------------

    Attachment: derby-4717-1a.diff

Attaching patch 1a, which consists of the following changes:

(production code)
 a) Make Derby close the trace file when the physical connection is closed and 
the trace file is specified using 'traceFile' (attribute or setter).
(test code)
 b) Disabled the test 'testClientMessageTextConnectionAttribute', as the test 
started failing when I corrected the test. It was using 
(ConnectionPool|XA)DataSource.getConnection() to obtain a connection. This 
method is not an API method, it's an artifact due to Derby's subclassing (the 
two mentioned data sources extend ClientBaseDataSource). DERBY-4067 trace the 
problem that the connection attributes are not picked up.
 c) Made the tests obtain the physical connections from data source by using 
the correct method (i.e. getXAConnection, getPooledConnection or getConnection).
 d) Extended the test 'testClientTraceFileDSConnectionAttribute' to also make 
sure the trace files can be deleted (regression test for DERBY-4717).
 e) Added 'getPhysicalConnection(Object ds)' for the cases where a physical 
connection is to be obtained, but the data source can be of any (Derby) type.

I need someone to test this patch on Windows, i.e. that 
jdbcapi.J2EEDataSourceTest.testClientTraceFileDSConnectionAttribute fails 
without the changes to ClientBaseDataSource.

Patch ready for review.

> Driver trace file isn't closed/released on physical connection close when 
> specified with the traceFile attribute/setter
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4717
>                 URL: https://issues.apache.org/jira/browse/DERBY-4717
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.7.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Minor
>         Attachments: derby-4717-1a.diff
>
>
> When specifying a trace file with the traceFile connection URL attribute or 
> with the data source setter method, the handle to the trace file isn't 
> released when the physical connection is closed.
> The problem may be specific to the implementations of 
> ConnectionPoolDataSource and XADataSource, as using a plain data source 
> doesn't involve reuse (i.e another mechanism may close the trace file handle).
> Two potential problems caused by this bug:
>  o resource leak  (i.e., too many file handles open)
>  o trace files cannot be deleted on Windows (seen for DERBY-4709)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to