You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/04/05 23:15:43 UTC
svn commit: r1465131 - in /jena/trunk/jena-arq/src:
main/java/com/hp/hpl/jena/sparql/resultset/ResultSetPeeking.java
test/java/com/hp/hpl/jena/sparql/resultset/TestResultSet.java
Author: rvesse
Date: Fri Apr 5 21:15:43 2013
New Revision: 1465131
URL: http://svn.apache.org/r1465131
Log:
Fix a logic bug in ResultSetPeeking, add additional unit test
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetPeeking.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSet.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetPeeking.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetPeeking.java?rev=1465131&r1=1465130&r2=1465131&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetPeeking.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/ResultSetPeeking.java Fri Apr 5 21:15:43 2013
@@ -119,10 +119,10 @@ public class ResultSetPeeking implements
if (diff == 0) {
// If no difference we have not peeked
return false;
- } else if (diff == 1) {
+ } else if (diff == 1 && this.peeked != null) {
// If difference is one then we have peeked
return true;
- } else if (diff > 1) {
+ } else if (diff >= 1) {
// If difference between what we think the row number is and that of
// the underlying result set is > 1 then someone has moved positions
// in the underying result set independently
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSet.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSet.java?rev=1465131&r1=1465130&r2=1465131&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSet.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSet.java Fri Apr 5 21:15:43 2013
@@ -424,6 +424,36 @@ public class TestResultSet extends BaseT
rs.hasNext();
}
+ @Test
+ public void test_RS_peeking_9() {
+ // Check that peeking causes the correct row to be returned when we actually access the rows
+ Node first = NodeFactory.createURI("tag:first");
+ Node second = NodeFactory.createURI("tag:second");
+ Var x = Var.alloc("x");
+
+ ResultSet inner = new ResultSetMem(make("x", first), make("x", second));
+ ResultSetPeekable rs = ResultSetFactory.makePeekable(inner);
+ assertTrue(rs.hasNext());
+
+ // Peek and check row is as expected
+ Binding peeked = rs.peekBinding();
+ assertNotNull(peeked);
+ assertTrue(first.equals(peeked.get(x)));
+
+ // Check first row is as expected
+ Binding next = rs.nextBinding();
+ assertNotNull(next);
+ assertTrue(first.equals(next.get(x)));
+
+ // Repeat for second row
+ peeked = rs.peekBinding();
+ assertNotNull(peeked);
+ assertTrue(second.equals(peeked.get(x)));
+ next = rs.nextBinding();
+ assertNotNull(next);
+ assertTrue(second.equals(next.get(x)));
+ }
+
// ---- Isomorphism.
/* This is from the DAWG test suite.