Make DerbyIOException useful for error messages requiring arguments to be
constructed
-------------------------------------------------------------------------------------
Key: DERBY-4005
URL: https://issues.apache.org/jira/browse/DERBY-4005
Project: Derby
Issue Type: Improvement
Components: Store
Affects Versions: 10.5.0.0
Reporter: Kristian Waagan
Priority: Minor
DerbyIOException is a subclass of IOException used to separate between
"genuine" IOExceptions and exceptions generated by Derby in environments where
only an IOException is allowed to be thrown.
Currently, the exception class carries an SQLState. If Derby catches
DerbyIOException before IOException, it can generate a SQLException with the
correct SQLState and throw it. The DerbyIOException must be attached to avoid
loosing the original stack trace.
The problem arising with SQLExceptions requiring arguments for the message
construction, is that the arguments are not available when the SQLException is
constructed.
There are at least two solutions to this problem:
a) Save the arguments in the DerbyIOException
b) Save an SQLException in the DerbyIOException
The motivation for fixing this issue, is that the user sees different
exceptions for the same root cause depending on which method is used to insert
a string data value. In general the differences are between stream and
non-stream methods, for instance PreparedStatement.setString and
PreparedStatement.setCharacterStream.
For instance, the non-stream method will throw 22001 (data truncation), but the
stream method will throw XJ001 (java exception).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.