db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Matrigali (JIRA)" <derby-...@db.apache.org>
Subject [jira] Closed: (DERBY-145) RAFContainer readPage method is not thread safe
Date Mon, 14 Feb 2005 19:51:12 GMT
     [ 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


Mime
View raw message