You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by vg...@apache.org on 2007/04/28 01:12:13 UTC

svn commit: r533253 - in /xml/xindice/trunk: java/src/org/apache/xindice/core/filer/BTree.java java/src/org/apache/xindice/core/filer/Paged.java java/src/org/apache/xindice/tools/DatabaseRebuild.java status.xml

Author: vgritsenko
Date: Fri Apr 27 16:12:12 2007
New Revision: 533253

URL: http://svn.apache.org/viewvc?view=rev&rev=533253
Log:
            <action dev="VG" type="fix" fixes-bug="42272" due-to="Natalia Shilenkova">
                Clear Paged and BTree cache on close.
            </action>


Modified:
    xml/xindice/trunk/java/src/org/apache/xindice/core/filer/BTree.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/filer/Paged.java
    xml/xindice/trunk/java/src/org/apache/xindice/tools/DatabaseRebuild.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=533253&r1=533252&r2=533253
==============================================================================
--- 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 Fri Apr 27 16:12:12 2007
@@ -147,6 +147,17 @@
         return false;
     }
 
+    public synchronized boolean close() throws DBException {
+        boolean closed = super.close();
+        if (closed) {
+            synchronized (cache) {
+                cache.clear();
+            }
+        }
+
+        return closed;
+    }
+
     /**
      * addKey adds a Value to the BTree and associates a pointer with
      * it.  The pointer can be used for referencing any type of data, it

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=533253&r1=533252&r2=533253
==============================================================================
--- 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 Fri Apr 27 16:12:12 2007
@@ -654,6 +654,11 @@
                         log.warn(descriptorsCount + " out of " + total + " files were not closed during close.");
                     }
                 }
+
+                // clear cache
+                synchronized (pagesLock) {
+                    pages.clear();
+                }
             } catch (Exception e) {
                 // Failed to close, leave open
                 opened = true;

Modified: xml/xindice/trunk/java/src/org/apache/xindice/tools/DatabaseRebuild.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/tools/DatabaseRebuild.java?view=diff&rev=533253&r1=533252&r2=533253
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/tools/DatabaseRebuild.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/tools/DatabaseRebuild.java Fri Apr 27 16:12:12 2007
@@ -50,7 +50,7 @@
 
     private static final Log log = LogFactory.getLog(DatabaseRebuild.class);
 
-    private static final int CMD_ALL = 0;
+    private static final int CMD_ALL   = 0;
     private static final int CMD_COPY  = 1;
     private static final int CMD_INDEX = 2;
 
@@ -75,10 +75,8 @@
             command = CMD_ALL;
         }
 
-        String dbLocation = args[1];
-
-        File location = new File(dbLocation);
-        dbLocation = location.getAbsolutePath();
+        File location = new File(args[1]);
+        String path = location.getAbsolutePath();
         String name = location.getName();
 
         if ("".equals(name) || !location.exists() || !location.isDirectory()) {
@@ -87,31 +85,40 @@
         }
 
         // create minimal database configuration instead of trying to locate system.xml
-        String  config = "<root-collection dbroot='" + dbLocation + "/' name='" + name + "'/>";
+        String config = "<root-collection dbroot='" + path + "/' name='" + name + "'/>";
         Database db = new Database();
 
-        boolean status = true;
+        boolean success = true;
         try {
+            System.out.println("Processing database " + path);
             System.out.println();
-            System.out.println("CI\tCollection name");
+            System.out.println("DI\tCollection name");
 
             db.setConfig(new Configuration(DOMParser.toDocument(config)));
 
             if (log.isInfoEnabled()) {
                 log.info("Rebuilding collections...");
             }
-            status = processCollection(db, command);
+            success = processCollection(db, command);
         } finally {
             db.close();
 
             System.out.println();
-            if (status) {
-                System.out.println("Rebuilding database was successfull");
+            System.out.println("Legend:");
+            System.out.println("    D Data file");
+            System.out.println("    I Index files");
+            System.out.println("    _ File was skipped");
+            System.out.println("    * File was processed successfuly");
+            System.out.println("    ! File processing failed");
+
+            System.out.println();
+            if (success) {
+                System.out.println("Rebuilding database was successfull.");
             } else {
-                System.out.println("Rebuilding database failed. Please check logs for more detail");
+                System.out.println("Rebuilding database failed. Please check logs for more detail.");
             }
 
-            System.exit(status ? 0 : 2);
+            System.exit(success ? 0 : 2);
         }
 
     }
@@ -119,9 +126,9 @@
     private static void usage() {
         System.out.println("Xindice " + Xindice.Version + " Database Rebuild Utility");
         System.out.println("Usage:");
-        System.out.println("\txindice_rebuild copy    <db location>");
-        System.out.println("\txindice_rebuild index   <db location>");
-        System.out.println("\txindice_rebuild rebuild <db location>");
+        System.out.println("    xindice_rebuild copy    <db location>");
+        System.out.println("    xindice_rebuild index   <db location>");
+        System.out.println("    xindice_rebuild rebuild <db location>");
         System.out.println();
         System.out.println("DB Location should point to the directory containing Xindice database files.");
         System.out.println();
@@ -389,7 +396,7 @@
                 Value v = filer.getValue(pointer);
                 newFiler.writeRecord(new Key(value), v);
             } catch (Exception e) {
-                e.printStackTrace();
+                log.error(e);
             }
 
             return true;

Modified: xml/xindice/trunk/status.xml
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/status.xml?view=diff&rev=533253&r1=533252&r2=533253
==============================================================================
--- xml/xindice/trunk/status.xml (original)
+++ xml/xindice/trunk/status.xml Fri Apr 27 16:12:12 2007
@@ -118,6 +118,9 @@
 
     <changes>
         <release version="1.1-dev" date="(not released)">
+            <action dev="VG" type="fix" fixes-bug="42272" due-to="Natalia Shilenkova">
+                Clear Paged and BTree cache on close.
+            </action>
             <action dev="VG" type="update" fixes-bug="41854" due-to="Natalia Shilenkova">
                 Add support for HashFiler in database rebuild tool.
             </action>