[Mulgara-svn] r1444 - in trunk/src/jar/query/java/org/mulgara/query/filter: . value

alexhall at mulgara.org alexhall at mulgara.org
Mon Jan 19 18:23:28 UTC 2009


Author: alexhall
Date: 2009-01-19 10:23:27 -0800 (Mon, 19 Jan 2009)
New Revision: 1444

Modified:
   trunk/src/jar/query/java/org/mulgara/query/filter/AbstractIsIriFnUnitTest.java
   trunk/src/jar/query/java/org/mulgara/query/filter/EqualityComparisonUnitTest.java
   trunk/src/jar/query/java/org/mulgara/query/filter/IsBlankFnUnitTest.java
   trunk/src/jar/query/java/org/mulgara/query/filter/IsLiteralFnUnitTest.java
   trunk/src/jar/query/java/org/mulgara/query/filter/LangMatchesUnitTest.java
   trunk/src/jar/query/java/org/mulgara/query/filter/RegexFnUnitTest.java
   trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java
Log:
Add an explicit check for unbound when resolving variables in a filter.  This operation is a type error in SPARQL, which should trigger a QueryException in Mulgara.  Without this check, resolving an unbound variable would result in the special Tuples.NONE node ID to be passed to the string pool for globalizing.  This was throwing an uncaught IllegalArgumentException.

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/AbstractIsIriFnUnitTest.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/AbstractIsIriFnUnitTest.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/AbstractIsIriFnUnitTest.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -80,7 +80,7 @@
       assertTrue(f.equals(fn));
       fail("No exception when testing an unbound value");
     } catch (QueryException qe) {
-      assertTrue(qe.getMessage().startsWith("Unbound column"));
+      assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
     }
   
     assertTrue(c.next());

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/EqualityComparisonUnitTest.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/EqualityComparisonUnitTest.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/EqualityComparisonUnitTest.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -280,19 +280,19 @@
           assertTrue(f.equals(eq));
           fail("No exception when testing an unbound value for equality");
         } catch (QueryException qe) {
-          assertTrue(qe.getMessage().startsWith("Unbound column"));
+          assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
         }
         try {
           assertTrue(f.equals(same));
           fail("No exception when testing an unbound value for equivalency");
         } catch (QueryException qe) {
-          assertTrue(qe.getMessage().startsWith("Unbound column"));
+          assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
         }
         try {
           assertTrue(f.equals(ne));
           fail("No exception when testing an unbound value for inequality");
         } catch (QueryException qe) {
-          assertTrue(qe.getMessage().startsWith("Unbound column"));
+          assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
         }
         break;
         

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/IsBlankFnUnitTest.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/IsBlankFnUnitTest.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/IsBlankFnUnitTest.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -101,7 +101,7 @@
       assertTrue(f.equals(fn));
       fail("No exception when testing an unbound value");
     } catch (QueryException qe) {
-      assertTrue(qe.getMessage().startsWith("Unbound column"));
+      assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
     }
 
     assertTrue(c.next());

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/IsLiteralFnUnitTest.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/IsLiteralFnUnitTest.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/IsLiteralFnUnitTest.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -104,7 +104,7 @@
       assertTrue(f.equals(fn));
       fail("No exception when testing an unbound value");
     } catch (QueryException qe) {
-      assertTrue(qe.getMessage().startsWith("Unbound column"));
+      assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
     }
 
     assertTrue(c.next());

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/LangMatchesUnitTest.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/LangMatchesUnitTest.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/LangMatchesUnitTest.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -189,7 +189,7 @@
           assertTrue(f.equals(fn));
           fail("No exception when testing an unbound value");
         } catch (QueryException qe) {
-          assertTrue(qe.getMessage().startsWith("Unbound column"));
+          assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
         }
         break;
         

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/RegexFnUnitTest.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/RegexFnUnitTest.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/RegexFnUnitTest.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -194,7 +194,7 @@
           assertTrue(f.equals(fn));
           fail("No exception when testing an unbound value");
         } catch (QueryException qe) {
-          assertTrue(qe.getMessage().startsWith("Unbound column"));
+          assertTrue(qe.getMessage().startsWith("Resolving unbound variable"));
         }
         break;
         

Modified: trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java	2009-01-19 11:28:22 UTC (rev 1443)
+++ trunk/src/jar/query/java/org/mulgara/query/filter/value/Var.java	2009-01-19 18:23:27 UTC (rev 1444)
@@ -233,6 +233,9 @@
    * @throws QueryException Indicates an error getting data out of the context.
    */
   public long resolveLocal() throws QueryException {
+    if (!getLocalContext().isBound(varIndex)) {
+      throw new QueryException("Resolving unbound variable: " + name);
+    }
     return getLocalContext().getColumnValue(varIndex);
   }
 




More information about the Mulgara-svn mailing list