Author: vgritsenko
Date: Tue Jun 26 17:25:22 2007
New Revision: 550995

URL: http://svn.apache.org/viewvc?view=rev&rev=550995
Log:
      <action dev="VG" type="update" fixes-bug="42684" due-to="Natalia 
Shilenkova">
        Use Java NIO to lock database on startup.
      </action>


Modified:
    xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java
    xml/xindice/trunk/status.xml

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java?view=diff&rev=550995&r1=550994&r2=550995
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/Database.java Tue Jun 26 
17:25:22 2007
@@ -348,18 +348,19 @@
         }
 
         // Put a lock (at least attempt to) on the database
-        // FIXME: Use JDK1.4 FileLock
         File lock = new File(getCollectionRoot(), "db.lock");
         try {
-            if (lock.exists() && !lock.delete()) {
-                throw new IOException("Could not delete lock file.");
-            }
             this.lock = new FileOutputStream(lock);
-            this.lock.write(new Date().toString().getBytes());
+
+            if (this.lock.getChannel().tryLock() != null) {
+                this.lock.write(new Date().toString().getBytes());
+            } else {
+                throw new IOException("Unable to acquire file lock.");
+            }
         } catch (IOException e) {
             throw new XindiceException("Unable to open lock file " + lock + ". 
" +
-                                       "Make sure database is not open by 
another process. " +
-                                       "Exception: " + e);
+                                       "Make sure database is not open by 
another process.",
+                                       e);
         }
 
         // Now we are ready to open it up

Modified: xml/xindice/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/status.xml?view=diff&rev=550995&r1=550994&r2=550995
==============================================================================
--- xml/xindice/trunk/status.xml (original)
+++ xml/xindice/trunk/status.xml Tue Jun 26 17:25:22 2007
@@ -117,6 +117,9 @@
 
   <changes>
     <release version="1.2" date="unreleased">
+      <action dev="VG" type="update" fixes-bug="42684" due-to="Natalia 
Shilenkova">
+        Use Java NIO to lock database on startup.
+      </action>
       <action dev="VG" type="add" fixes-bug="42478" due-to="Natalia 
Shilenkova">
         Add WebAdmin to the Xindice core (from scratchpad).
       </action>


Reply via email to