[
https://issues.apache.org/jira/browse/DERBY-3085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12530492
]
Kathey Marsden commented on DERBY-3085:
---------------------------------------
I think the problem is not the warning itself. I changed the embedded code to
not add the warning and saw the same protocol error even though the warning was
not sent. I tend to think the trouble is that in the even there are no matching
rows, The entire stream is not consumed, since it is not needed to update the
row. This leaves the DDMReader pointing to the middle of the parameter data
when it is ready to read the next DSS.
> Fails to handle BLOB fields with a PreparedStatement with size >32750 bytes
> ---------------------------------------------------------------------------
>
> Key: DERBY-3085
> URL: https://issues.apache.org/jira/browse/DERBY-3085
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.2.1.6, 10.2.2.0, 10.3.1.4
> Environment: Windows XP SP2
> Reporter: Mikael Aronsson
> Attachments: TestBlob.java, trace.out.norows, trace.out.withrow
>
>
> Java Version: 1.6.0_02
> Java Vendor: Sun Microsystems Inc.
> Java home: C:\Program Files\Java\jre1.6.0_02
> Java classpath: derbytools.jar
> OS name: Windows XP
> OS architecture: x86
> OS version: 5.1
> Java user name: Ma
> Java user home: C:\Documents and Settings\ma
> Java user dir: c:\tools\derby\lib
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [C:\tools\derby\lib\derbytools.jar] 10.3.1.4 - (561794)
> The following code fails:
> // Data is a byte[] vector
> ByteArrayInputStream is = new ByteArrayInputStream( data);
> String sql = "UPDATE MyTable SET FContents=? WHERE FName='" + name + "'";
> PreparedStatement ps = conn.prepareStatement( sql);
> ps.setBinaryStream( 1, is, data.length);
>
> if( ps.executeUpdate() == 0)
> {
> // it throws an exception here if the data array us larger then
> around 32750 bytes!!!
> }
> It look's like when the size of the data[] vector is > 32750 bytes or so it
> throws an exception like this:
> java.sql.SQLException: A network protocol error was encountered and the
> connection has been terminated: A PROTOCOL Data Stream Syntax Error was
> detected. Reason: 0x0. Plaintext connection attempt to an SSL enabled server?
> at
> org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.client.am.SqlException.getSQLException(Unknown
> Source)
> at org.apache.derby.client.am.PreparedStatement.executeUpdate(Unknown
> Source)
> The table is defined as:
> CREATE TABLE MyTable (FName varchar(300) NOT NULL,FContents BLOB(16M) NOT
> NULL)
> It does loook like this only happens with the NetWork client driver, the
> embedded driver works fine.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.