vgritsenko 2003/08/12 08:55:34
Modified: . status.xml
store/src/java/org/apache/excalibur/store/impl
JispFilesystemStore.java JispKey.java
JispStringKey.java
Log:
Fix Jisp based persistent store: close database and index files on shutdown
and re-use existing files on startup.
Revision Changes Path
1.5 +5 -1 avalon-excalibur/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/avalon-excalibur/status.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- status.xml 6 Aug 2003 21:50:02 -0000 1.4
+++ status.xml 12 Aug 2003 15:55:34 -0000 1.5
@@ -17,8 +17,12 @@
<person name="Vadim Gritsenko" email="[EMAIL PROTECTED]" id="VG"/>
</devs>
<release version="@version@" date="@date@">
+ <action dev="VG" type="fix">
+ Fix Jisp based persistent store: close database and index files on shutdown
+ and re-use existing files on startup.
+ </action>
<action dev="VG" type="add">
- Added Saxon XPath processors to the xmlutil
+ Added Saxon XPath processors to the xmlutil.
</action>
<action dev="PR" type="fix">
Fixing proxy-based datasource code.
1.3 +35 -7
avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispFilesystemStore.java
Index: JispFilesystemStore.java
===================================================================
RCS file:
/home/cvs/avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispFilesystemStore.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JispFilesystemStore.java 14 Jul 2003 19:06:08 -0000 1.2
+++ JispFilesystemStore.java 12 Aug 2003 15:55:34 -0000 1.3
@@ -56,10 +56,12 @@
import com.coyotegulch.jisp.IndexedObjectDatabase;
import com.coyotegulch.jisp.KeyNotFound;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.excalibur.store.Store;
/**
* This store is based on the Jisp library
@@ -71,9 +73,10 @@
* @version CVS $Id$
*/
public class JispFilesystemStore extends AbstractJispFilesystemStore
- implements org.apache.excalibur.store.Store,
+ implements Store,
ThreadSafe,
- Parameterizable {
+ Parameterizable,
+ Disposable {
/**
* Configure the Component.<br>
@@ -122,18 +125,22 @@
getLogger().debug("Initializing JispFilesystemStore");
}
- try {
+ try
+ {
final boolean isOld = databaseFile.exists();
if (getLogger().isDebugEnabled())
{
getLogger().debug("initialize(): Datafile exists: " + isOld);
}
- m_Index = new BTreeIndex(indexFile.toString(),
- order, super.getNullKey(), false);
+ if (!isOld) {
+ m_Index = new BTreeIndex(indexFile.toString(),
+ order, super.getNullKey(), false);
+ } else {
+ m_Index = new BTreeIndex(indexFile.toString());
+ }
m_Database = new IndexedObjectDatabase(databaseFile.toString(), !isOld);
m_Database.attachIndex(m_Index);
-
}
catch (KeyNotFound ignore)
{
@@ -144,4 +151,25 @@
}
}
+ public void dispose()
+ {
+ try
+ {
+ getLogger().debug("Disposing");
+
+ if (m_Index != null)
+ {
+ m_Index.close();
+ }
+
+ if (m_Database != null)
+ {
+ m_Database.close();
+ }
+ }
+ catch (Exception e)
+ {
+ getLogger().error("dispose(..) Exception", e);
+ }
+ }
}
1.4 +1 -4
avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispKey.java
Index: JispKey.java
===================================================================
RCS file:
/home/cvs/avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispKey.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JispKey.java 14 Jul 2003 18:17:23 -0000 1.3
+++ JispKey.java 12 Aug 2003 15:55:34 -0000 1.4
@@ -181,6 +181,3 @@
return m_Key;
}
}
-
-
-
1.9 +2 -2
avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispStringKey.java
Index: JispStringKey.java
===================================================================
RCS file:
/home/cvs/avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/JispStringKey.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JispStringKey.java 14 Jul 2003 13:58:19 -0000 1.8
+++ JispStringKey.java 12 Aug 2003 15:55:34 -0000 1.9
@@ -68,7 +68,7 @@
private String m_Key;
- static private final String INIT = new String("");
+ static private final String INIT = "";
/**
* Constructor for the JispStringKey object
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]