[ 
https://issues.apache.org/jira/browse/DERBY-2582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12492216
 ] 

Knut Anders Hatlen commented on DERBY-2582:
-------------------------------------------

It is also possible to add wrapper methods with these signatures to the old 
data sources:

public boolean isWrapperFor(Class iface)
public Object unwrap(Class iface)

This will work as long as you access them through the ConnectionPoolDataSource 
interface (or the Wrapper interface) on Java 1.6, like this:

  ConnectionPoolDataSource ds = myEmbeddedConnectionPoolDataSource;
  if (ds.isWrapperFor(EmbeddedConnectionPoolDataSource.class) {
    EmbeddedConnectionPoolDataSource ds2 = 
ds.unwrap(EmbeddedConnectionPoolDataSource.class);
  }

I'm not saying it's a good solution, but perhaps it could reduce the problem?

> EmbeddedConnectionPoolDataSource does not implement java.sql.Wrapper but 
> reports JDBC 4 compliance when run with JDK 6 
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2582
>                 URL: https://issues.apache.org/jira/browse/DERBY-2582
>             Project: Derby
>          Issue Type: Sub-task
>          Components: JDBC
>    Affects Versions: 10.2.2.1
>         Environment: JDK 6
>            Reporter: Stan Bradbury
>
> Software that checks the value returned by the dataseMetadata method 
> getJDBCMajorVersion for JDBC compliance level and, based on the value, takes 
> different paths in the code will fail unexpectedly accessing java.sql.Wrapper 
> when loading EmbeddedConnectionPoolDataSource in a JDK 6 environment.  
> EmbeddedConnectionPoolDataSource reports a compliance level of 4 when loaded 
> in a JDK 6 environment.  It returns JDBC 4 objects but the Datasource itself 
> does NOT satify  the JDBC 4.0 interface Wrapper and so, not being fully 
> compliant, should not report JDBC 4 compliance.  
> JSR 221 does not detail the behavior of the dataseMetadata method 
> getJDBCMajorVersion but the description in Section 6.3, JDBC 4.0 API 
> Compliance, states: "A driver that is compliant with the JDBC 4.0 
> specification must .. Fully implement .. java.sql.Wrapper".  As Dan stated in 
> his comment on DERBY-2488,  
> (http://issues.apache.org/jira/browse/DERBY-2488#action_12485033) 
> EmbeddedConnectionPoolDataSource does not implement Wrapper. 

-- 
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