You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2010/11/05 20:18:42 UTC
[jira] Created: (DERBY-4888) ClassCastException when calling
boolean meta-data functions with 10.7 client against 10.6 server
ClassCastException when calling boolean meta-data functions with 10.7 client against 10.6 server
------------------------------------------------------------------------------------------------
Key: DERBY-4888
URL: https://issues.apache.org/jira/browse/DERBY-4888
Project: Derby
Issue Type: Bug
Components: JDBC, Network Client
Affects Versions: 10.7.1.0
Reporter: Knut Anders Hatlen
Assignee: Knut Anders Hatlen
I noticed that DESCRIBE didn't work when I tried to connect to a 10.6 server with ij/client driver at version 10.7.
ij> describe t;
JAVA ERROR: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
at org.apache.derby.client.am.DatabaseMetaData.getMetaDataInfoBoolean(DatabaseMetaData.java:2401)
at org.apache.derby.client.am.DatabaseMetaData.storesLowerCaseIdentifiers(DatabaseMetaData.java:191)
at org.apache.derby.impl.tools.ij.ij.caIdentifier(ij.java:3040)
at org.apache.derby.impl.tools.ij.ij.DescTableStatement(ij.java:1624)
at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1121)
at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:341)
at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
at org.apache.derby.tools.ij.main(ij.java:59)
at org.apache.derby.iapi.tools.run.main(run.java:53)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (DERBY-4888) ClassCastException when calling
boolean meta-data functions with 10.7 client against 10.6 server
Posted by "Bryan Pendleton (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12928854#action_12928854 ]
Bryan Pendleton commented on DERBY-4888:
----------------------------------------
Both the test and the fix look clear and straightforward. Thanks for catching this problem!
+1.
> ClassCastException when calling boolean meta-data functions with 10.7 client against 10.6 server
> ------------------------------------------------------------------------------------------------
>
> Key: DERBY-4888
> URL: https://issues.apache.org/jira/browse/DERBY-4888
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.7.1.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: boolean.diff, test.diff
>
>
> I noticed that DESCRIBE didn't work when I tried to connect to a 10.6 server with ij/client driver at version 10.7.
> ij> describe t;
> JAVA ERROR: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> at org.apache.derby.client.am.DatabaseMetaData.getMetaDataInfoBoolean(DatabaseMetaData.java:2401)
> at org.apache.derby.client.am.DatabaseMetaData.storesLowerCaseIdentifiers(DatabaseMetaData.java:191)
> at org.apache.derby.impl.tools.ij.ij.caIdentifier(ij.java:3040)
> at org.apache.derby.impl.tools.ij.ij.DescTableStatement(ij.java:1624)
> at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1121)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:341)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
> at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
> at org.apache.derby.tools.ij.main(ij.java:59)
> at org.apache.derby.iapi.tools.run.main(run.java:53)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (DERBY-4888) ClassCastException when calling
boolean meta-data functions with 10.7 client against 10.6 server
Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Knut Anders Hatlen updated DERBY-4888:
--------------------------------------
Attachment: test.diff
Attaching a test case that exposes the bug. When running the compatibility test with 10.6.1.0 server and 10.7 client, I get this error:
There was 1 error:
1) testJDBCDriver(org.apache.derbyTesting.functionTests.tests.junitTests.compatibility.JDBCDriverTest)java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
at org.apache.derby.client.am.DatabaseMetaData.getMetaDataInfoBoolean(DatabaseMetaData.java:2401)
at org.apache.derby.client.am.DatabaseMetaData.storesLowerCaseIdentifiers(DatabaseMetaData.java:191)
at org.apache.derbyTesting.functionTests.tests.junitTests.compatibility.JDBCDriverTest.derby_4888_test(JDBCDriverTest.java:383)
at org.apache.derbyTesting.functionTests.tests.junitTests.compatibility.JDBCDriverTest.testJDBCDriver(JDBCDriverTest.java:257)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.derbyTesting.functionTests.tests.junitTests.compatibility.CompatibilitySuite.main(CompatibilitySuite.java:147)
The test case passes with the suggested fix.
> ClassCastException when calling boolean meta-data functions with 10.7 client against 10.6 server
> ------------------------------------------------------------------------------------------------
>
> Key: DERBY-4888
> URL: https://issues.apache.org/jira/browse/DERBY-4888
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.7.1.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: boolean.diff, test.diff
>
>
> I noticed that DESCRIBE didn't work when I tried to connect to a 10.6 server with ij/client driver at version 10.7.
> ij> describe t;
> JAVA ERROR: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> at org.apache.derby.client.am.DatabaseMetaData.getMetaDataInfoBoolean(DatabaseMetaData.java:2401)
> at org.apache.derby.client.am.DatabaseMetaData.storesLowerCaseIdentifiers(DatabaseMetaData.java:191)
> at org.apache.derby.impl.tools.ij.ij.caIdentifier(ij.java:3040)
> at org.apache.derby.impl.tools.ij.ij.DescTableStatement(ij.java:1624)
> at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1121)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:341)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
> at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
> at org.apache.derby.tools.ij.main(ij.java:59)
> at org.apache.derby.iapi.tools.run.main(run.java:53)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (DERBY-4888) ClassCastException when calling
boolean meta-data functions with 10.7 client against 10.6 server
Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Knut Anders Hatlen updated DERBY-4888:
--------------------------------------
Attachment: boolean.diff
The problem appears to be that the client thinks 10.6 sends boolean meta-data values as java.lang.Boolean objects because of a typo in this method in client.am.DatabaseMetaData:
final public boolean serverSupportsBooleanValues() {
return supportsUDTs_;
}
It should return supportsBooleanValues_ (true for server >= 10.7) instead of supportsUDTs_ (true for server >= 10.6). The attached patch makes the ClassCastException go away for me.
> ClassCastException when calling boolean meta-data functions with 10.7 client against 10.6 server
> ------------------------------------------------------------------------------------------------
>
> Key: DERBY-4888
> URL: https://issues.apache.org/jira/browse/DERBY-4888
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.7.1.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: boolean.diff
>
>
> I noticed that DESCRIBE didn't work when I tried to connect to a 10.6 server with ij/client driver at version 10.7.
> ij> describe t;
> JAVA ERROR: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> at org.apache.derby.client.am.DatabaseMetaData.getMetaDataInfoBoolean(DatabaseMetaData.java:2401)
> at org.apache.derby.client.am.DatabaseMetaData.storesLowerCaseIdentifiers(DatabaseMetaData.java:191)
> at org.apache.derby.impl.tools.ij.ij.caIdentifier(ij.java:3040)
> at org.apache.derby.impl.tools.ij.ij.DescTableStatement(ij.java:1624)
> at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1121)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:341)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
> at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
> at org.apache.derby.tools.ij.main(ij.java:59)
> at org.apache.derby.iapi.tools.run.main(run.java:53)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (DERBY-4888) ClassCastException when calling boolean
meta-data functions with 10.7 client against 10.6 server
Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Knut Anders Hatlen closed DERBY-4888.
-------------------------------------
Resolution: Fixed
Fix Version/s: 10.7.1.0
Thanks for taking a look at the patch, Bryan!
Committed revision 1031973.
> ClassCastException when calling boolean meta-data functions with 10.7 client against 10.6 server
> ------------------------------------------------------------------------------------------------
>
> Key: DERBY-4888
> URL: https://issues.apache.org/jira/browse/DERBY-4888
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.7.1.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Fix For: 10.7.1.0
>
> Attachments: boolean.diff, test.diff
>
>
> I noticed that DESCRIBE didn't work when I tried to connect to a 10.6 server with ij/client driver at version 10.7.
> ij> describe t;
> JAVA ERROR: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Boolean
> at org.apache.derby.client.am.DatabaseMetaData.getMetaDataInfoBoolean(DatabaseMetaData.java:2401)
> at org.apache.derby.client.am.DatabaseMetaData.storesLowerCaseIdentifiers(DatabaseMetaData.java:191)
> at org.apache.derby.impl.tools.ij.ij.caIdentifier(ij.java:3040)
> at org.apache.derby.impl.tools.ij.ij.DescTableStatement(ij.java:1624)
> at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1121)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:341)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:261)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
> at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
> at org.apache.derby.tools.ij.main(ij.java:59)
> at org.apache.derby.iapi.tools.run.main(run.java:53)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.