[
https://issues.apache.org/jira/browse/DERBY-2488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
A B updated DERBY-2488:
-----------------------
Attachment: d2488_v2.patch
Attaching a second patch that has the same functional behavior as the first
one, except that it uses reflection to create the JDBC 4 object so that the
non-JDBC 4 classes will still compile with 1.4.
I did a full ant clobber and ant all with this patch and the build finishes
cleanly. I also ran suites.All and derbyall on Red Hat Linux with ibm142 with
no issues. I haven't run those suites with jdk16 yet because I don't have a
machine available with that jvm at the moment.
Before going any further with this I'm hoping someone can offer input as to
whether or not this is the correct approach. Or to be more explicit, Dan, do
these changes correlate with your comments above, or am I totally off-track
here?
> When loaded by jvm1.6 - Derby JDBC 3.0 driver returns 4 for JDBC driver major
> ------------------------------------------------------------------------------
>
> Key: DERBY-2488
> URL: https://issues.apache.org/jira/browse/DERBY-2488
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.2.2.0
> Environment: Run test using JVM 1.6
> Reporter: Stan Bradbury
> Attachments: d2488_notTested_v1.patch, d2488_v2.patch,
> showJDBCdsMetaDataLis.class, showJDBCdsMetaDataLis.class,
> showJDBCdsMetaDataLis.java, showJDBCdsMetaDataLis.java
>
>
> When loaded using JVM 1.6 the JDBC 3.0 data source
> (org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource) is reporting a JDBC
> spec compliance level of 4. The DatabaseMetaData.getJDBCMajorVersion method
> should return the
> correct spec compliance level (3) for the JDBC 3.0 data source. The
> application server that relies on the reported spec compliance level to
> determine if a statement event listener should be registered will encounter a
> failure when attemptting to register an event listener with the JDBC 3.0
> driver.
> Note that the JDBC 4.0 metadata call
> ..getMetaData().supportsStoredFunctionsUsingCallSyntax() is executed by the
> JDBC 3.0 driver. This doesn't bother me but seems curious that this is
> supported by a JDBC 3.0 driver.
> Attached is a test case based on the test code from DERBY-8862 (JDBC 4 driver
> reports incorrect spec complieance level).
> Running the test:
> set JAVA_HOME to a 1.6 JVM
> Compile program
> run command: ${JAVA_HOME}/java showJDBCdsMetaDataLis <path-to-database> 3.0
> Using JAVA 6.0
> > "%JAVA_HOME%\bin\java" showJDBCdsMetaDataLis "c:\tstdb102" 3.0
> . . JDBC 3 or less: Using jdbc.EmbeddedConnectionPoolDataSource
> Database product: Apache Derby
> Database version: 10.2.2.0 - (485682)
> Driver name: Apache Derby Embedded JDBC Driver
> Driver version: 10.2.2.0 - (485682)
> JDBC driver major version: 4
> JDBC driver minor version: 0
> JDBC 4.0 metaData - SFusingCall: true
> >> exception thrown:
> A non SQL error occured.
> java.lang.AbstractMethodError:
> org.apache.derby.jdbc.EmbedPooledConnection.addStatementEventListener(Ljavax/sql/Statemen
> tEventListener;)V
> at showJDBCdsMetaDataLis.main(showJDBCdsMetaDataLis.java:103)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.