[Mulgara-svn] r1313 - trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene

ronald at mulgara.org ronald at mulgara.org
Wed Oct 15 02:15:26 UTC 2008


Author: ronald
Date: 2008-10-14 19:15:26 -0700 (Tue, 14 Oct 2008)
New Revision: 1313

Modified:
   trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneResolverUnitTest.java
Log:
Fixed race condition in tests: was using same TqlIntepreter instance
everywhere without proper synchronization.


Modified: trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneResolverUnitTest.java
===================================================================
--- trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneResolverUnitTest.java	2008-10-14 17:35:12 UTC (rev 1312)
+++ trunk/src/jar/resolver-lucene/java/org/mulgara/resolver/lucene/LuceneResolverUnitTest.java	2008-10-15 02:15:26 UTC (rev 1313)
@@ -138,6 +138,9 @@
     }
   }
 
+  private synchronized Query parseQuery(String q) throws Exception {
+    return (Query) ti.parseCommand(q);
+  }
 
   /**
    * The teardown method for JUnit
@@ -165,8 +168,8 @@
       // Run the queries
       try {
         String q = "select $x from <foo:bar> where $x <foo:hasText> 'American' in <" + modelURI + ">;";
-        Query qry1 = (Query) ti.parseCommand(q);
-        Query qry2 = (Query) ti.parseCommand(q);
+        Query qry1 = parseQuery(q);
+        Query qry2 = parseQuery(q);
 
         Answer answer1 = session.query(qry1);
         Answer answer2 = session.query(qry1);
@@ -214,7 +217,7 @@
 
                 // Evaluate the query
                 String q = "select $x from <foo:bar> where $x <foo:hasText> 'Study' in <" + modelURI + ">;";
-                Answer answer = session2.query((Query) ti.parseCommand(q));
+                Answer answer = session2.query(parseQuery(q));
 
                 compareResults(expectedStudyResults(), answer);
                 answer.close();
@@ -249,7 +252,7 @@
         }
 
         String q = "select $x from <foo:bar> where $x <foo:hasText> 'Group' in <" + modelURI + ">;";
-        Answer answer = session1.query((Query) ti.parseCommand(q));
+        Answer answer = session1.query(parseQuery(q));
 
         compareResults(expectedGroupResults(), answer);
         answer.close();
@@ -293,7 +296,7 @@
 
         // run query before second txn starts
         String q = "select $x from <foo:bar> where $x <foo:hasText> 'Group' in <" + modelURI + ">;";
-        Answer answer = session1.query((Query) ti.parseCommand(q));
+        Answer answer = session1.query(parseQuery(q));
 
         compareResults(expectedGroupResults(), answer);
         answer.close();
@@ -319,7 +322,9 @@
                 }
 
                 String q = "insert <foo:nodeX> <foo:hasText> 'Another Group text' into <" + modelURI + ">;";
-                session2.insert(modelURI, ((Modification) ti.parseCommand(q)).getStatements());
+                synchronized (LuceneResolverUnitTest.this) {
+                  session2.insert(modelURI, ((Modification) ti.parseCommand(q)).getStatements());
+                }
 
                 synchronized (flag) {
                   flag[0] = true;
@@ -348,7 +353,7 @@
         }
 
         // run query before insert
-        answer = session1.query((Query) ti.parseCommand(q));
+        answer = session1.query(parseQuery(q));
         compareResults(expectedGroupResults(), answer);
         answer.close();
 
@@ -362,7 +367,7 @@
         }
 
         // run query after insert and before commit
-        answer = session1.query((Query) ti.parseCommand(q));
+        answer = session1.query(parseQuery(q));
         compareResults(expectedGroupResults(), answer);
         answer.close();
 
@@ -381,7 +386,7 @@
         assertFalse("second transaction should've terminated", t2.isAlive());
 
         // run query after commit
-        answer = session1.query((Query) ti.parseCommand(q));
+        answer = session1.query(parseQuery(q));
         compareResults(expectedGroupResults(), answer);
         answer.close();
 
@@ -393,7 +398,7 @@
         xid1 = new TestXid(3);
         resource1.start(xid1, XAResource.TMNOFLAGS);
 
-        answer = session1.query((Query) ti.parseCommand(q));
+        answer = session1.query(parseQuery(q));
         compareResults(concat(expectedGroupResults(), new String[][] { { "foo:nodeX" } }), answer);
         answer.close();
 




More information about the Mulgara-svn mailing list