[ http://issues.apache.org/jira/browse/DERBY-1254?page=all ]

V.Narayanan updated DERBY-1254:
-------------------------------

    Attachment: DERBY_1254.diff
                DERBY_1254.stat

The getNetXAConnection method overriden in NetXAConnection40 has a different 
signature from the superclass method which was causing the problem.

ClientPooledConnection
----------------------------------
getNetXAConnection accepts ClientBaseDataSource as parameter.

ClientXAConnection40
-------------------------------
getNetXAConnection accepts ClientDataSource as parameter.

This was causing the netXAPhysicalConnection_ variable to be initialized with 
NetXAConnection instead of NetXAConnection40 in the ClientPooledConnection 
class constructor. 

Fixing the signature of overridden method getNetXAConnection in 
ClientXAConnection40 would have fixed this problem. 

However, the NetXAConnection40 does nothing but have a overriden implementation 
of getNetConnection for returning NetConnection40. Instead if we used the 
ClientJDBCObjectFactory.getNetConnection method to return the appropriate 
NetConnection object based on jdk version in NetXAConnection.getNetConnection  
we could have done away with NetXAConnection40.This has been done in this patch.

Please find attached the .diff and the .stat files for this patch.

thanx
Narayanan


> XAConnection uses NetConnection as underlying physical connection for 
> JDBC4/Java 1.6
> ------------------------------------------------------------------------------------
>
>          Key: DERBY-1254
>          URL: http://issues.apache.org/jira/browse/DERBY-1254
>      Project: Derby
>         Type: Bug

>   Components: JDBC
>     Versions: 10.2.0.0
>  Environment: DerbyNetClient
>     Reporter: Kristian Waagan
>     Assignee: V.Narayanan
>  Attachments: DERBY_1254.diff, DERBY_1254.stat
>
> When running under DerbyNetClient (using Derby network server) using Java 
> 1.6, XAConnection.getConnection() returns a NetConnection instance instead of 
> NetConnection40 instance for the underlying "physical connection". This 
> causes AbstractMethod errors for calls in LogicalConnection40 (not yet 
> committed). PooledConnection does the correct thing according to the test 
> that revealed this problem.
> The XAConnection was obtained by using 
> TestUtil.getXADataSource().getXAConnection(). The underlying connection 
> object was then obtained with XAConnection.getConnection().
> A new ConnectionTest is on the way as part of DERBY-1180. It will be 
> submitted/committed, but not enabled until this bug is fixed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to