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

Reply via email to