[ http://issues.apache.org/jira/browse/DERBY-121?page=all ]

A B updated DERBY-121:
----------------------

    Attachment: derby-121_3.patch

Modified patch so that lobLengthTests.java uses a table name that correctly 
indicates the size of the test table we're using.

Also, per Kathey M's request, I'm including a "check-in comment" here:

----
1) Change Network Server and Derby Client code to do correct bit-shifting when 
processing the length of LOBs that are larger than 2^24 bytes (DERBY-121).  2) 
Add a new suite, "largeData", for running tests that require extra machine 
resources, and add the test for DERBY-121 to that suite (because the test for 
DERBY-121 requires extra heap memory for the server's JVM).
----

> Network Server reading blob/clob data size
> ------------------------------------------
>
>          Key: DERBY-121
>          URL: http://issues.apache.org/jira/browse/DERBY-121
>      Project: Derby
>         Type: Bug
>   Components: Network Server
>     Versions: 10.1.0.0
>  Environment: The is a bit shift typo in Network Server reading clob/blob 
> data size
>     Reporter: Lynh Nguyen
>     Assignee: A B
>     Priority: Minor
>  Attachments: derby-121_2.stat, derby-121_3.patch
>
> in DDMReader.java 
> ...
> ... readLengthAndCodePoint() ... { 
> ...
> switch (numberOfExtendedLenBytes) {
>                       case 8:
>                                ddmScalarLen =
>                                       ((buffer[pos++] & 0xff) << 64) +
>                                       ((buffer[pos++] & 0xff) << 56) +
>                                       ((buffer[pos++] & 0xff) << 48) +
>                                       ((buffer[pos++] & 0xff) << 40) +
>                                       ((buffer[pos++] & 0xff) << 32) +
>                                       ((buffer[pos++] & 0xff) << 16) +
>                                       ((buffer[pos++] & 0xff) << 8) +
>                                       ((buffer[pos++] & 0xff) << 0);
>                               adjustSize = 12;
>                               break;
>                       case 6:
>                               ddmScalarLen =
>                                       ((buffer[pos++] & 0xff) << 48) +
>                                       ((buffer[pos++] & 0xff) << 40) +
>                                       ((buffer[pos++] & 0xff) << 32) +
>                                       ((buffer[pos++] & 0xff) << 16) +
>                                       ((buffer[pos++] & 0xff) << 8) +
>                                       ((buffer[pos++] & 0xff) << 0);
>                               adjustSize = 10;
>                               break;
>                       case 4:
>                               ddmScalarLen =
>                                       ((buffer[pos++] & 0xff) << 32) +
>                                       ((buffer[pos++] & 0xff) << 16) +
>                                       ((buffer[pos++] & 0xff) << 8) +
>                                       ((buffer[pos++] & 0xff) << 0);
>                               adjustSize = 8;
>                               break;
> ...
> The shift bits should be in order:
> 0,8,16,24 
> 0,8,16,24,32,40
> 0,8,16,24,32,40,48,56
> This will only affect the larger clob/blob (over 64K ...)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to