Author: vgritsenko
Date: Tue Oct 24 19:24:31 2006
New Revision: 467541

URL: http://svn.apache.org/viewvc?view=rev&rev=467541
Log:
            <action dev="VG" type="fix">
                HashFiler did not allocate root page correctly.
            </action>
            <action dev="VG" type="fix">
                BTreeFiler did not use first pagecount pages due to bug
                introduced in 1.1b4.
            </action>


Modified:
    xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
    xml/xindice/trunk/status.xml

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java?view=diff&rev=467541&r1=467540&r2=467541
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java Tue Oct 
24 19:24:31 2006
@@ -114,11 +114,15 @@
             try {
                 // Don't call this.open() as it will try to read rootNode from 
the disk
                 super.open();
-                long p = fileHeader.getRootPage();
-                rootInfo = new BTreeRootInfo(p);
+
+                Page p = getFreePage();
+                long pn = p.getPageNum().longValue();
+                fileHeader.setRootPage(pn);
+
+                rootInfo = new BTreeRootInfo(pn);
 
                 // Initialize root node
-                rootNode = new BTreeNode(getPage(p), null, new Value[0], new 
long[0]);
+                rootNode = new BTreeNode(p, null, new Value[0], new long[0]);
                 rootNode.ph.setStatus(LEAF);
                 rootNode.write();
                 synchronized (cache) {

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java?view=diff&rev=467541&r1=467540&r2=467541
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/HashFiler.java Tue 
Oct 24 19:24:31 2006
@@ -44,8 +44,7 @@
  * quite a bit more flexibility in its ability to retreive blocks of
  * data and allocate Record space.
  *
- * @deprecated This class has been temporarily (maybe indefinitely)
- *             deprecated by BTreeFiler.
+ * @deprecated This class has been temporarily deprecated by BTreeFiler.
  * @version CVS $Revision$, $Date$
  */
 public final class HashFiler extends Paged implements Filer {
@@ -80,7 +79,9 @@
     }
 
     public boolean create() throws DBException {
-        fileHeader.setPageCount(getConfig().getLongAttribute(PAGECOUNT, 
fileHeader.getPageCount()));
+        fileHeader.setPageCount(getConfig().getLongAttribute(PAGECOUNT,
+                                                             
fileHeader.getPageCount()));
+        fileHeader.setTotalCount(fileHeader.getPageCount());
         return super.create();
     }
 
@@ -89,9 +90,8 @@
         long pageNum = hash % fileHeader.getPageCount();
         Page p = getPage(pageNum);
         synchronized (p) {
-            HashPageHeader ph = null;
             while (true) {
-                ph = (HashPageHeader) p.getPageHeader();
+                HashPageHeader ph = (HashPageHeader) p.getPageHeader();
                 if (ph.getStatus() == RECORD && ph.getKeyHash() == 
key.getHash() && p.getKey().equals(key)) {
                     return p;
                 }
@@ -226,7 +226,7 @@
             Page page = getPage(pageNum);
             synchronized(page) {
                 HashPageHeader prevHead = null;
-                HashPageHeader pageHead = null;
+                HashPageHeader pageHead;
 
                 Page prev = null;
                 while (true) {
@@ -288,13 +288,11 @@
 
         public HashFilerRecordSet() {
             try {
-                Page p = null;
-                HashPageHeader ph = null;
                 long pageNum = 0;
 
                 while (pageNum < fileHeader.getTotalCount()) {
-                    p = getPage(pageNum);
-                    ph = (HashPageHeader) p.getPageHeader();
+                    Page p = getPage(pageNum);
+                    HashPageHeader ph = (HashPageHeader) p.getPageHeader();
                     if (ph.getStatus() == RECORD) {
                         keys.add(p.getKey());
                     }

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java?view=diff&rev=467541&r1=467540&r2=467541
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java Tue Oct 
24 19:24:31 2006
@@ -586,7 +586,7 @@
         RandomAccessFile raf = null;
         try {
             raf = getDescriptor();
-            long o = fileHeader.headerSize + (fileHeader.totalCount + 1) * 
fileHeader.pageSize - 1;
+            long o = fileHeader.headerSize + (fileHeader.pageCount + 1) * 
fileHeader.pageSize - 1;
             raf.seek(o);
             raf.write(0);
         }  finally {
@@ -904,7 +904,7 @@
         public FileHeader(long pageCount, int pageSize) {
             this.pageSize = pageSize;
             this.pageCount = pageCount;
-            this.totalCount = pageCount;
+            this.totalCount = 0;
             this.headerSize = (short) 4096;
             calculateWorkSize();
         }

Modified: xml/xindice/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/status.xml?view=diff&rev=467541&r1=467540&r2=467541
==============================================================================
--- xml/xindice/trunk/status.xml (original)
+++ xml/xindice/trunk/status.xml Tue Oct 24 19:24:31 2006
@@ -74,10 +74,17 @@
 
     <changes>
         <release version="1.1b5-dev" date="Oct 24 2006">
+            <action dev="VG" type="fix">
+                HashFiler did not allocate root page correctly.
+            </action>
+            <action dev="VG" type="fix">
+                BTreeFiler did not use first pagecount pages due to bug
+                introduced in 1.1b4.
+            </action>
             <action dev="VG" type="update">
                 Implement DOM3 API compatibility.
             </action>
-            <action dev="VG" type="fix" fixes-bug="31159">
+            <action dev="VG" type="fix">
                 Data files were created 6Mb in size instead of 4Mb (default 
value).
             </action>
             <action dev="VG" type="fix" fixes-bug="37383" due-to="Terry 
Rosenbaum">


Reply via email to