[ 
https://issues.apache.org/jira/browse/DERBY-3116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen resolved DERBY-3116.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 10.5.0.0
                   10.4.1.0

Committed to 10.4 with revision 644967.

> totalSpace not properly initialized in AllocPage
> ------------------------------------------------
>
>                 Key: DERBY-3116
>                 URL: https://issues.apache.org/jira/browse/DERBY-3116
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.4.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.4.1.0, 10.5.0.0
>
>         Attachments: d3116-1.diff, d3116-2.diff
>
>
> There are some problems with the initialization of totalSpace in AllocPage. 
> It is initialized in StoredPage.initSpace() which is again called from 
> StoredPage.usePageBuffer(), and it is set to the value returned from 
> AllocPage.getMaxFreeSpace(). The problems are:
>   1) The calculation in getMaxFreeSpace() uses borrowedSpace, but when 
> createIdentity() is called on an AllocPage, borrowedSpace has not been 
> initialized when getMaxFreeSpace() is called and the calculated size is wrong.
>   2) When a page object is reused, usePageBuffer() is only called if a new 
> byte array must be allocated (because the new page has a different size than 
> the old page). This means that the totalSize field gets the same value as in 
> the old page if their sizes are equal, which is not necessarily correct.

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

Reply via email to