Blob.setBytes differs between embedded and client driver when the specified 
length is invalid
---------------------------------------------------------------------------------------------

                 Key: DERBY-3898
                 URL: https://issues.apache.org/jira/browse/DERBY-3898
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.4.2.0, 10.3.3.0, 10.5.0.0
            Reporter: Kristian Waagan
            Priority: Minor


Blob.setBytes behaves differently with the embedded driver and the client 
driver.
Assume a 1 byte array and a specified length of 2: Blob.setBytes(1, new byte[] 
{0x69}, 0, 2)
Embedded: IndexOutOfBoundsException (from java.io.RandomAccessFile.writeBytes 
or System.arraycopy)
Client: succeeds, returns insertion count 1

The behavior should be made consistent, but what is the correct behavior?

>From the Blob.setBytes JavaDoc:
"Writes all or part of the given byte array to the BLOB value that this Blob 
object represents and returns the number of bytes written. Writing starts at 
position pos in the BLOB  value; len bytes from the given byte array are 
written. The array of bytes will overwrite the existing bytes in the Blob 
object starting at the position pos. If the end of the Blob value is reached 
while writing the array of bytes, then the length of the Blob value will be 
increased to accomodate the extra bytes."

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