The implementation of java.sql.Clob in the client driver is cracking up, and should be rewritten.
A number of bugs have been discovered, and the implementation has traces of old and/or deprecated features. Further, several mandatory methods (JDBC 3 & 4) have not yet been implemented and could benefit from a fresh start.
I think maintainability for this piece of code has dropped to an unacceptable level.
It seems the implementation is based on an assumption that no longer holds; that a Clob object used for input to the database is never passed to the user. The consequence of this, is that the internal state of the Clob object is not valid [at all times], which causes exceptions when the user invokes methods on it.
A number of related Jira issues have been linked to this issue to aid the reimplementation process.