[ 
https://issues.apache.org/jira/browse/DERBY-2618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kristian Waagan resolved DERBY-2618.
------------------------------------

       Resolution: Invalid
    Fix Version/s: 10.3.0.0
       Derby Info:   (was: [Patch Available])

Resolving as invalid, since there is no such thing as a non-ascii character if 
the stream is behaving according to contract.< (ignoring high order bits). Note 
that in JDBC ASCII is defined to by any value between 0 and 255 (inclusive).

Also note that there has been some fixes done as part of this issue.
There might be underlying issues that have not yet been solved. They are 
handled by other Jiras.

I expect to close this issue soon.

> 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
>             Fix For: 10.3.0.0
>
>         Attachments: derby-2618v3.diff, derby2618_partial_v1.txt, 
> derby2618_partial_v2.txt, derby2618_partial_v4.txt, 
> derby2618_partial_v5-ontopofv4.diff, Derby2618BugsInClobAsciiStream.java
>
>
> 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.

Reply via email to