[ http://issues.apache.org/jira/browse/DERBY-145?page=history ]
     
Mike Matrigali closed DERBY-145:
--------------------------------

     Assign To: Mike Matrigali
    Resolution: Won't Fix

> RAFContainer readPage method is not thread safe
> -----------------------------------------------
>
>          Key: DERBY-145
>          URL: http://issues.apache.org/jira/browse/DERBY-145
>      Project: Derby
>         Type: Bug
>   Components: Store
>     Versions: 10.0.2.1
>  Environment: N/A
>     Reporter: Rick Post
>     Assignee: Mike Matrigali
>     Priority: Minor

>
> readPage method comment says 'thread safe and has a synchronized block.
> But 'pageOffset' computation occurs outside the sync block as does decryption.
> This allows the (remote?) possibility of part of the operation(s) being 
> performed using the wrong pageNumber or pageData.
> Fix - synchronize the method rather than the block
>       /**
>               Read a page into the supplied array.
>               <BR> MT - thread safe
>               @exception IOException exception reading page
>               @exception StandardException Standard Cloudscape error policy
>       */
>       protected void readPage(long pageNumber, byte[] pageData)
>                throws IOException, StandardException
>       {
>               if (SanityManager.DEBUG) {
>                       SanityManager.ASSERT(!getCommittedDropState());
>               }
>               long pageOffset = pageNumber * pageSize;
>               synchronized (this) {
>                       fileData.seek(pageOffset);
>                       fileData.readFully(pageData, 0, pageSize);
>               }
>               if (dataFactory.databaseEncrypted() &&
>                       pageNumber != FIRST_ALLOC_PAGE_NUMBER)
>               {
>                       decryptPage(pageData, pageSize);
>               }
>       }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to