db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Created: (DERBY-2762) Document, verify and fix synchronization issues related to Clob in the embedded driver
Date Tue, 05 Jun 2007 13:33:26 GMT
Document, verify and fix synchronization issues related to Clob in the embedded driver
--------------------------------------------------------------------------------------

                 Key: DERBY-2762
                 URL: https://issues.apache.org/jira/browse/DERBY-2762
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.3.0.0
            Reporter: Kristian Waagan
             Fix For: 10.3.0.0


Synchronization with respect to Clobs is a bit tricky.
A full review of synchronization should be performed, and documentation and actual behavior
must be made in agreement with each other.

The synchronization wrt. Clob is made tricker due to the many streams that can be used to
read or write its value.
The main classes to review will be (there might be more):
 a) EmbedClob
 b) StoreStreamClob
 c) ClobStreamControl (may be renamed to TemporaryClob)
 d) ClobUtf8Writer
 e) ClobAsciiStream
 f) ClobUpdateableReader

We should also clarify and document what is supposed to be allowed. Can
you read from one stream and write to another one at the same time, both
from the same Clob?
Can you expect the ascii stream and the character stream to be in sync
if you read from both of them?

A related issue is that of garbage collection of underlying resources
before the streams are closed. DERBY-2734 has already been filed for
this.

I would like to try a little experiment by using a few simple
annotations to document intended synchronization policies. These are the
annotations defined in the book "Java Concurrency in Practice" by Brian
Goetz et al, and the JavaDoc for them can be found here: 
http://javaconcurrencyinpractice.com/annotations/doc/index.html

Since we are still using Java 1.4, the annotations must be used as
comments. I still think they are valuable, as we do not use any tools to
document/check synchronization anyway.

Briefly, the following four annotations are defined:
 @GuardedBy
 @Immutable
 @NotThreadSafe
 @ThreadSafe


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message