db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4949) Backward, confusing error message when you use the wrong ResultSet.getXXX() method in the client driver
Date Thu, 23 Dec 2010 16:20:02 GMT

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

Rick Hillegas updated DERBY-4949:
---------------------------------

    Attachment: derby-4949-01-aa-fixCursor.diff

Attaching derby-4949-01-aa-fixCursor.diff. This is a first attempt to fix this problem. I
am running regression tests now and will see what breaks.

The root cause of the problem was that ColumnTypeConversionException was coded backwards.
The names of its arguments should have been flipped to agree with the order of the arguments
in the actual message. I have cleaned up the argument names in this class.

There was a second problem in Cursor. There the coercion errors were passed the weird source
type of '"java.sql.Types " + jdbcTypes_[column -1]', which is a pretty cryptic name for a
datatype. I have replaced those cryptic type names with human-readable names produced by invoking
Types.getTypeString().


Touches the following files:

---------

M      java/client/org/apache/derby/client/am/Cursor.java
M      java/client/org/apache/derby/client/am/SqlException.java


> Backward, confusing error message when you use the wrong ResultSet.getXXX() method in
the client driver
> -------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4949
>                 URL: https://issues.apache.org/jira/browse/DERBY-4949
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.8.0.0
>            Reporter: Rick Hillegas
>            Assignee: Rick Hillegas
>         Attachments: derby-4949-01-aa-fixCursor.diff, zz.java
>
>
> If you try to get a Time value out of an INTEGER column, the client driver gives this
error. I believe that similar nonsense comes back when you try other mismatched getters on
other datatypes:
>     "An attempt was made to get a data value of type 'java.sql.Types 4' from a data value
of type 'java.sql.Time'."
> The exception is a java.sql.SQLDataException with SQLState 22005. The embedded driver
returns a better message:
>     "An attempt was made to get a data value of type 'java.sql.Time' from a data value
of type INTEGER'."
> I recommend two improvements to the utility method which generates these exceptions:
> 1) Flip the order of the type names.
> 2) Use the ResultSetMetaData to look up the source data type name.

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


Mime
View raw message