Return-Path: Delivered-To: apmail-db-derby-commits-archive@www.apache.org Received: (qmail 41684 invoked from network); 4 Apr 2008 22:31:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Apr 2008 22:31:21 -0000 Received: (qmail 66623 invoked by uid 500); 4 Apr 2008 22:31:22 -0000 Delivered-To: apmail-db-derby-commits-archive@db.apache.org Received: (qmail 66596 invoked by uid 500); 4 Apr 2008 22:31:22 -0000 Mailing-List: contact derby-commits-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: "Derby Development" List-Id: Delivered-To: mailing list derby-commits@db.apache.org Received: (qmail 66585 invoked by uid 99); 4 Apr 2008 22:31:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Apr 2008 15:31:22 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 Apr 2008 22:30:38 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 524951A983A; Fri, 4 Apr 2008 15:30:58 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r644967 - in /db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data: AllocPage.java CachedPage.java Date: Fri, 04 Apr 2008 22:30:57 -0000 To: derby-commits@db.apache.org From: kahatlen@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080404223058.524951A983A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kahatlen Date: Fri Apr 4 15:30:55 2008 New Revision: 644967 URL: http://svn.apache.org/viewvc?rev=644967&view=rev Log: DERBY-3116: totalSpace not properly initialized in AllocPage Merged fix from trunk (revision 644698). Modified: db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/AllocPage.java db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java Modified: db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/AllocPage.java URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/AllocPage.java?rev=644967&r1=644966&r2=644967&view=diff ============================================================================== --- db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/AllocPage.java (original) +++ db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/AllocPage.java Fri Apr 4 15:30:55 2008 @@ -274,9 +274,11 @@ throws StandardException { - super.createPage(newIdentity, args); + // We need to set borrowedSpace before we call super.createPage() so + // that totalSpace is initialized correctly (DERBY-3116). + borrowedSpace = args.containerInfoSize; - borrowedSpace = args.containerInfoSize; + super.createPage(newIdentity, args); if (SanityManager.DEBUG) { @@ -307,12 +309,19 @@ reserved1 = reserved2 = reserved3 = reserved4 = 0; // calculate how much space we have left for the extent map - int maxSpace = getMaxFreeSpace(); + if (SanityManager.DEBUG) { + // totalSpace used to be incorrect (DERBY-3116), so check it here + int maxFreeSpace = getMaxFreeSpace(); + SanityManager.ASSERT(totalSpace == maxFreeSpace, + "totalSpace = " + totalSpace + + ", getMaxFreeSpace() = " + maxFreeSpace); + } // the pages this extent is going to manage starts from pageNum+1 // starting physical offset is pageSize*(pageNum+1) since we have // no logical to physical mapping yet... - extent = createExtent(newIdentity.getPageNumber()+1, getPageSize(), 0 /* pagesAlloced */, maxSpace); + extent = createExtent(newIdentity.getPageNumber()+1, getPageSize(), + 0 /* pagesAlloced */, totalSpace); } private AllocExtent createExtent(long pageNum, int pageSize, int pagesAlloced, int availspace) Modified: db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java?rev=644967&r1=644966&r2=644967&view=diff ============================================================================== --- db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java (original) +++ db/derby/code/branches/10.4/java/engine/org/apache/derby/impl/store/raw/data/CachedPage.java Fri Apr 4 15:30:55 2008 @@ -857,9 +857,11 @@ // Just in case memory is low. pageData = null; pageData = new byte[pageSize]; - - usePageBuffer(pageData); } + + // Always call usePageBuffer(), even when we reuse the buffer, so that + // totalSpace and friends are recalculated (DERBY-3116). + usePageBuffer(pageData); }