[
https://issues.apache.org/jira/browse/DERBY-5236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-5236:
--------------------------------------
Attachment: d5236-4b.diff
Attached is an updated patch (4b) which handles the case where
writeLDString() sends data to a NetworkServerControl client and the
AppRequester is null. In that case, we don't need to disable the fix,
since the StringIndexOutOfBoundsException we're trying to avoid, only
happens in the client JDBC driver.
All the regression tests ran cleanly with this version of the patch.
Committed to trunk with revision 1167470.
> Client driver silently truncates strings that exceed 32KB
> ---------------------------------------------------------
>
> Key: DERBY-5236
> URL: https://issues.apache.org/jira/browse/DERBY-5236
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.8.1.2
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: d5236-1a-client-fetch-complete.diff,
> d5236-2a-longer-strings.diff, d5236-3a-warning.diff,
> d5236-4a-client-compatibility.diff, d5236-4b.diff, repro.diff,
> write-full-string.diff
>
>
> Can be seen with this JUnit test case that retrieves a VARCHAR value with
> 20000 characters. With the client driver, the string is truncated to 10900
> characters (32700 bytes when encoded in UTF-8).
> public void testLongColumn() throws SQLException {
> PreparedStatement ps = prepareStatement(
> "values cast(? as varchar(20000))");
> char[] chars = new char[20000];
> Arrays.fill(chars, '\u4e10');
> String str = new String(chars);
> ps.setString(1, str);
> JDBC.assertSingleValueResultSet(ps.executeQuery(), str);
> }
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira