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 "Kristian Waagan (JIRA)" <de...@db.apache.org> on 2006/08/10 00:57:13 UTC

[jira] Created: (DERBY-1657) Align error reporting in the client driver and embedded driver for streaming errors through the JDBC API

Align error reporting in the client driver and embedded driver for streaming errors through the JDBC API
--------------------------------------------------------------------------------------------------------

                 Key: DERBY-1657
                 URL: http://issues.apache.org/jira/browse/DERBY-1657
             Project: Derby
          Issue Type: Improvement
          Components: JDBC, Network Client, Network Server, Store
         Environment: Using streams as input for JDBC methods.
            Reporter: Kristian Waagan


The way streaming errors are reported differ between the client driver and the embedded driver.

The following SQLStates can be seen:
XCL30.S=An IOException was thrown when reading a ''{0}'' from an InputStream.
XSDA4.S=An unexpected exception was thrown
22001=A truncation error was encountered trying to shrink {0} ''{1}'' to length {2}.
XJ023.S=Input stream did not have exact amount of data as the requested length.
XN014.S=Network protocol error: encountered an IOException, parameter #{0}.  Remaining data has been padded with 0x0. Message: {1}.
XN015.S=Network protocol error: the specified size of the InputStream, parameter #{0}, is less than the actual InputStream length.
XN016.S=Network protocol error: encountered error in stream length verification, parameter #{0}.  Message: {1}.
XN017.S=Network protocol error: end of stream prematurely reached, parameter #{0}.  Remaining data has been padded with 0x0.
XN018.S=Network protocol error: the specified size of the Reader, parameter #{0}, is less than the actual InputStream length.

Some of these exceptions are nested inside one or more of the other exceptions.
There are basicly three types of streaming errors:
 a) The stream is too long for the column it is being inserted into
 b) The actual length of the stream does not match the specified length
 c) A general IOException is thrown when reading from the stream

An approach would be to always throw specific exceptions for a) and b), for instance 22001 and XJ023, and throw a general exception for class c) exceptions (the message of the IOException would be wrapped/included).

Note that the level of detail in client and embedded (in the top level exception)  might vary; it can be XN017 on the client, but XSDA4 in embedded (for the same JDBC code causing the exception).

Changing the SQLStates might impact existing applications, but aligning the drivers' behavior has high priority.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Updated: (DERBY-1657) Align error reporting in the client driver and embedded driver for streaming errors through the JDBC API

Posted by "Kathey Marsden (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kathey Marsden updated DERBY-1657:
----------------------------------

    Derby Categories: [Embedded/Client difference]

> Align error reporting in the client driver and embedded driver for streaming errors through the JDBC API
> --------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1657
>                 URL: https://issues.apache.org/jira/browse/DERBY-1657
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC, Network Client, Network Server, Store
>         Environment: Using streams as input for JDBC methods.
>            Reporter: Kristian Waagan
>
> The way streaming errors are reported differ between the client driver and the embedded driver.
> The following SQLStates can be seen:
> XCL30.S=An IOException was thrown when reading a ''{0}'' from an InputStream.
> XSDA4.S=An unexpected exception was thrown
> 22001=A truncation error was encountered trying to shrink {0} ''{1}'' to length {2}.
> XJ023.S=Input stream did not have exact amount of data as the requested length.
> XN014.S=Network protocol error: encountered an IOException, parameter #{0}.  Remaining data has been padded with 0x0. Message: {1}.
> XN015.S=Network protocol error: the specified size of the InputStream, parameter #{0}, is less than the actual InputStream length.
> XN016.S=Network protocol error: encountered error in stream length verification, parameter #{0}.  Message: {1}.
> XN017.S=Network protocol error: end of stream prematurely reached, parameter #{0}.  Remaining data has been padded with 0x0.
> XN018.S=Network protocol error: the specified size of the Reader, parameter #{0}, is less than the actual InputStream length.
> Some of these exceptions are nested inside one or more of the other exceptions.
> There are basicly three types of streaming errors:
>  a) The stream is too long for the column it is being inserted into
>  b) The actual length of the stream does not match the specified length
>  c) A general IOException is thrown when reading from the stream
> An approach would be to always throw specific exceptions for a) and b), for instance 22001 and XJ023, and throw a general exception for class c) exceptions (the message of the IOException would be wrapped/included).
> Note that the level of detail in client and embedded (in the top level exception)  might vary; it can be XN017 on the client, but XSDA4 in embedded (for the same JDBC code causing the exception).
> Changing the SQLStates might impact existing applications, but aligning the drivers' behavior has high priority.

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