[ 
https://issues.apache.org/jira/browse/DERBY-1595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12879706#action_12879706
 ] 

Knut Anders Hatlen commented on DERBY-1595:
-------------------------------------------

The 1a patch looks fine to me. Two questions, though:

1) Is the value of MAX_LONG_6_BYTES_SIGNED correct? Looking at the 
corresponding code at the server side, it seems like it should have been 
0xFFFFFFFFFFFFL, not 0x7FFFFFFFFFFFL. See for example 
DDMWriter.calculateExtendedLengthByteCount():

                else if (ddmSize <= 0xffffffffffffL)
                        return 6;

And DDMReader.readNetworkSixByteLong() is also coded to handle that extra bit:

                return (
                                ((buffer[pos++] & 0xffL) << 40) +
                                ...

2) Are you planning to internationalize the new error message that was added?

> Network server fails with DRDAProtocolException if a BLOB with size 
> 2147483647 is streamed from client
> ------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1595
>                 URL: https://issues.apache.org/jira/browse/DERBY-1595
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Server
>    Affects Versions: 10.2.1.6
>            Reporter: Andreas Korneliussen
>            Assignee: Kristian Waagan
>            Priority: Minor
>             Fix For: 10.7.0.0
>
>         Attachments: derby-1595-1a-client_write6bytes.diff
>
>
> When executing a program which inserts a BLOB of size 2GB-1, the Network 
> server fails with DRDAProtocolException.  This happens before it starts 
> handling the actual LOB data:
> java org.apache.derby.drda.NetworkServerControl start
> Apache Derby Network Server - 10.2.0.4 alpha started and ready to accept 
> connections on port 1527 at 2006-07-26 14:15:21.284 GMT
> Execution failed because of a Distributed Protocol Error:  
> DRDA_Proto_SYNTAXRM; CODPNT arg  = 0; Error Code Value = c
> org.apache.derby.impl.drda.DRDAProtocolException
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(DRDAConnThread.java:441)
>         at 
> org.apache.derby.impl.drda.DDMReader.readLengthAndCodePoint(DDMReader.java:554)
>         at 
> org.apache.derby.impl.drda.DDMReader.getCodePoint(DDMReader.java:617)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA_work(DRDAConnThread.java:4072)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA(DRDAConnThread.java:3928)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(DRDAConnThread.java:3806)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:3640)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:928)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:254)
> null
> org.apache.derby.impl.drda.DRDAProtocolException
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(DRDAConnThread.java:441)
>         at 
> org.apache.derby.impl.drda.DDMReader.readLengthAndCodePoint(DDMReader.java:554)
>         at 
> org.apache.derby.impl.drda.DDMReader.getCodePoint(DDMReader.java:617)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA_work(DRDAConnThread.java:4072)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA(DRDAConnThread.java:3928)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(DRDAConnThread.java:3806)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:3640)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:928)
>         at 
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:254)

-- 
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