Hi Andrew,

Sorry for the late reply. I've run a couple of tests for SerialClob.
IMO it is obvious that RI has bugs in either setString() or
getSubString(). So I am +1 for following the spec.

Thanks,

2007/3/12, Andrew Zhang <[EMAIL PROTECTED]>:
On 3/9/07, Andrew Zhang <[EMAIL PROTECTED]> wrote:
>
> 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!
>

If no one objects, I'll consider it as a bug of RI, and won't follow RI for
this case.


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


--
Alexei Zakharov,
Intel ESSD

Reply via email to