[Mulgara-svn] r1402 - trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene
ronald at mulgara.org
ronald at mulgara.org
Fri Dec 5 11:56:21 UTC 2008
Author: ronald
Date: 2008-12-05 03:56:21 -0800 (Fri, 05 Dec 2008)
New Revision: 1402
Modified:
trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndex.java
trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndexUnitTest.java
Log:
Fixed a bug where a statement with an empty literal could be inserted but
not deleted.
Modified: trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndex.java
===================================================================
--- trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndex.java 2008-12-05 11:56:15 UTC (rev 1401)
+++ trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndex.java 2008-12-05 11:56:21 UTC (rev 1402)
@@ -438,7 +438,6 @@
throws FullTextStringIndexException {
boolean removed = false;
if ((literal == null) ||
- (literal.length() == 0) ||
(subject == null) ||
(subject.length() == 0) ||
(predicate == null) ||
Modified: trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndexUnitTest.java
===================================================================
--- trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndexUnitTest.java 2008-12-05 11:56:15 UTC (rev 1401)
+++ trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/FullTextStringIndexUnitTest.java 2008-12-05 11:56:21 UTC (rev 1402)
@@ -103,6 +103,7 @@
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new FullTextStringIndexUnitTest("testFullTextStringPool"));
+ suite.addTest(new FullTextStringIndexUnitTest("testFullTextStringPoolCornerCases"));
suite.addTest(new FullTextStringIndexUnitTest("testFullTextStringPoolwithFiles"));
suite.addTest(new FullTextStringIndexUnitTest("testFullTextStringPoolTransactions"));
@@ -325,7 +326,104 @@
}
}
+
/**
+ * Test corner cases (null subject, object, predicate, etc).
+ *
+ * @throws Exception Test fails
+ */
+ public void testFullTextStringPoolCornerCases() throws Exception {
+ LuceneIndexerCache cache = new LuceneIndexerCache(indexDirectory);
+ FullTextStringIndex index = null;
+
+ try {
+ String document = "http://mulgara.org/mulgara/document#";
+ String has = "http://mulgara.org/mulgara/document#has";
+
+ //Clean any existing indexes.
+ cache.close();
+ cache.removeAllIndexes();
+ cache = new LuceneIndexerCache(indexDirectory);
+
+ //create the index
+ index = new FullTextStringIndex(cache, true, true);
+
+ // Add strings to the index
+ try {
+ index.add(null, has, "foo");
+ fail("exception expected for adding null subject");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.add(document, null, "foo");
+ fail("exception expected for adding null predicate");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.add(document, has, null);
+ fail("exception expected for adding null literal");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.add("", has, "foo");
+ fail("exception expected for adding empty subject");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.add(document, "", "foo");
+ fail("exception expected for adding empty predicate");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ index.add(document, has, "");
+
+ // remove strings from the index
+ try {
+ index.remove(null, has, "foo");
+ fail("exception expected for removing null subject");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.remove(document, null, "foo");
+ fail("exception expected for removing null predicate");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.remove(document, has, null);
+ fail("exception expected for removing null literal");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.remove("", has, "foo");
+ fail("exception expected for removing empty subject");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ try {
+ index.remove(document, "", "foo");
+ fail("exception expected for removing empty predicate");
+ } catch (FullTextStringIndexException ftsie) {
+ }
+
+ index.remove(document, has, "");
+
+ } finally {
+ if (index != null) {
+ index.close();
+ cache.close();
+ assertTrue("Unable to remove all index files", cache.removeAllIndexes());
+ }
+ }
+ }
+
+ /**
* 1. Test the loading of text files into the fulltext string pool 2. Checking
* for existance 3. Test removal of files
*
More information about the Mulgara-svn
mailing list