javax.sql.rowset.serial.SerialBlob doesn't support free and getBinaryStream
Deven You
youdwei at linux.vnet.ibm.com
Fri Sep 21 03:21:14 UTC 2012
Hi Lance,
I am very busy with other work so I can't work with the
SerialBlob/SerialClob item for long time. I am very happy to refine the
current test case and create new tests for SerialClob.
I have create a new webre[1] for this task, please review it.
[1] http://cr.openjdk.java.net/~youdwei/OJDK-576/webrev.01/
<http://cr.openjdk.java.net/%7Eyoudwei/OJDK-576/webrev.01/>
PS: If the isFree is not transient, I want to know how we add this field
to the javadoc serialized form?
Thanks a lot!
On 07/06/2012 04:46 AM, Lance Andersen - Oracle wrote:
> Hi Deven,
>
> We had a holiday here on Weds, so I am still catching up.
>
> First, thank you for taking the time to propose a patch.
>
> Here are a few comments based on the changes I have made in my
> workspace and comparing to your proposed changes
>
> - The same issue applies to SerialClob
> - instead of duplicating all of the code to check if free has been
> called in each method, I created a private method which does the
> validation
> - I do not see a reason to make the flag isFree transient, if the
> object has been freed, it has been freed
> - free() needs to call blob.free if the blob object is not null prior
> to nulling out the object
> - Your 2nd if statement in getBinaryStream() duplicates part of the
> check in the 1st if statement
> - All of the public methods need to have their javadocs indicate that
> if called after free has been called, a SerialException will be
> thrown. additional calls to free is a no-op
> - The test case is is a good start. I would change this a bit though:
> + create separate test classes for free and getbinarystream
> + each individual test be a method
> + If you catch the expected Exception, print that the test has passed
> + Each test needs a comment as to what it is trying to validate
> (just a simple comment is fine)
> + return 0 if the test passed, 1 if it fails and then print the
> number of failed tests at the end after running through all of them
>
>
> As I need to change the javadocs, I have create a ccc request which I
> will do as part of the JDBC 4.2 work and will put the change back at
> that time.
>
> If you would like to change your test and then create similar tests
> for SerialClob I will add those as part of the put-back.
>
> Again, thank you for your input and time.
>
> Best
> Lance
>
>
>
>
> On Jul 5, 2012, at 2:26 AM, Deven You wrote:
>
>> Hi Lance,
>>
>> Did you review the patch and compare it to yours. I just have some
>> more words for the patch.
>>
>> 1. I think the current spec for free() is not clear, how about add
>> below comments:
>>
>> After free has been called, any attempt to invoke a method other
>> than free will result in a SerialException being thrown.
>>
>> 2. getBinaryStream(long pos,long length)
>>
>> add a javadoc:
>> * @throws SerialException if this SerialBlob already be freed.
>>
>> add throws SerialException from this method
>>
>> Any suggestions?
>>
>> Thanks a lot!
>> On 07/02/2012 06:25 PM, Lance Andersen - Oracle wrote:
>>> Hi Deven,
>>>
>>> Thanks for the email and the proposed patch. I will look at this
>>> later today or tomorrow. I actually have made these changes in my
>>> workspace for JDK 8 but will compare your changes to mine.
>>>
>>> Best
>>> Lance
>>> On Jul 2, 2012, at 5:04 AM, Deven You wrote:
>>>
>>>> Hi All,
>>>> Could anyone notice this problem?
>>>>
>>>> Thanks a lot!
>>>> On 06/25/2012 04:18 PM, Deven You wrote:
>>>>> Hi All,
>>>>>
>>>>> First of all, if the jdbc problem has a better mailing list to
>>>>> post please tell me.
>>>>>
>>>>> I find that javax.sql.rowset.serial.SerialBlob is not fully
>>>>> implemented in OpenJDK 8. Methods
>>>>>
>>>>> public InputStream getBinaryStream(long pos,long length) throws
>>>>> SQLException
>>>>> public void free() throws SQLException
>>>>>
>>>>> only throw UnsupportedOperationException.
>>>>>
>>>>> I have made a patch[1] to implement these 2 methods. Could anyone
>>>>> take a look to review it.
>>>>>
>>>>> BTW: I think the spec for SerialBlob is not very clear like it
>>>>> doesn't mention if all method rather than free() need throw any
>>>>> exception after free() is invoked. However that behavior seems
>>>>> reasonable.
>>>>>
>>>>> [1] http://cr.openjdk.java.net/~littlee/OJDK-576/webrev
>>>>> <http://cr.openjdk.java.net/%7Elittlee/OJDK-576/webrev>
>>>>>
>>>>> Thanks a lot.
>>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>>
>>>> Deven
>>>>
>>>
>>> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
>>> <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance
>>> Andersen| Principal Member of Technical Staff | +1.781.442.2037
>>> Oracle Java Engineering
>>> 1 Network Drive
>>> Burlington, MA 01803
>>> Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>
>>>
>>
>>
>> --
>> Best Regards,
>>
>> Deven
>
> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
> <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance
> Andersen| Principal Member of Technical Staff | +1.781.442.2037
> Oracle Java Engineering
> 1 Network Drive
> Burlington, MA 01803
> Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>
>
More information about the core-libs-dev
mailing list