Hi,

Noticed that RI doesn't set correct value with SerialClob.setString(long,
String, int, int)[1]. Consider following code:
public void testSetStringJLStringII() throws Exception {
       String s = "hello";
       char[] buf = s.toCharArray();
       SerialClob serialClob = new SerialClob(buf);

       serialClob.setString(1, "olleh", 0, 5);
       String sub = serialClob.getSubString(1, 5);
       assertEquals("olleh", sub);

       serialClob.setString(2, "mmnn",1, 2);
       sub = serialClob.getSubString(1, 5);
       assertEquals("omneh", sub); // RI fails here
}

After setting, RI fails the test with value "onneh". The test is
straightforward. Do I miss something? Or it's RI's bug?
Thanks!


[1]
Following is quoted from java spec:
public int setString(long pos, String str, int offset, int length) throws
SerialException
Writes len characters of str, starting at character offset, to the CLOB
value that this Clob represents.

Parameters -
pos - the position at which to start writing to the CLOB value that this
SerialClob object represents; the first position is 1; must not be less than
1 nor greater than the length of this SerialClob object
str - the string to be written to the CLOB value that this Clob object
represents
offset - the offset into str to start reading the characters to be written
length - the number of characters to be written


--
Best regards,
Andrew Zhang

Reply via email to