EmbedClob.setAsciiStream does not handle non-ascii characters correctly
-----------------------------------------------------------------------
Key: DERBY-2618
URL: https://issues.apache.org/jira/browse/DERBY-2618
Project: Derby
Issue Type: Bug
Components: JDBC
Affects Versions: 10.3.0.0
Reporter: Kristian Waagan
Assigned To: Kristian Waagan
If non-ascii characters are written to the Writer returned by
EmbedClob.setAsciiStream, Derby fails with a 'java.io.UTFDataFormatException'
when the CLOB value is read back.
I'm filing this bug with 'Major' priority, as the bug does not manifest itself
when entering data, just when you try to get it back. Except from filtering the
data yourself before entering it, I don't think there is any workaround.
Sample stack trace from a modified test:
1)
testClobAsciiWrite1ParamKRISTIWAA(org.apache.derbyTesting.functionTests.tests.jdbcapi.LobStreamsTest)java.sql.SQLException:
Unable to set stream: 'java.io.UTFDataFormatException'.
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:95)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:94)
at org.apache.derby.impl.jdbc.Util.setStreamFailure(Util.java:246)
at org.apache.derby.impl.jdbc.EmbedClob.length(EmbedClob.java:190)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.setClob(EmbedPreparedStatement.java:1441)
at
org.apache.derbyTesting.functionTests.tests.jdbcapi.LobStreamsTest.testClobAsciiWrite1ParamKRISTIWAA(LobStreamsTest.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:88)
Caused by: java.sql.SQLException: Unable to set stream:
'java.io.UTFDataFormatException'.
at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:135)
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
... 22 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.