You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by ca...@apache.org on 2011/06/16 11:30:15 UTC
svn commit: r1136339 - in /incubator/jena/Jena2/ARQ/trunk:
src-test/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java
src/com/hp/hpl/jena/sparql/resultset/TSVInput.java
Author: castagna
Date: Thu Jun 16 09:30:15 2011
New Revision: 1136339
URL: http://svn.apache.org/viewvc?rev=1136339&view=rev
Log:
JENA-72 - TSVInput now throws an exception if a row has too many values (i.e. more than the vars|columns define by the first row.
Modified:
incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/TSVInput.java
Modified: incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java?rev=1136339&r1=1136338&r2=1136339&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java Thu Jun 16 09:30:15 2011
@@ -7,17 +7,18 @@
package com.hp.hpl.jena.sparql.resultset;
-import java.io.ByteArrayInputStream ;
+import java.io.ByteArrayInputStream;
-import org.junit.Test ;
-import org.openjena.atlas.lib.StrUtils ;
+import org.junit.Test;
+import org.openjena.atlas.lib.StrUtils;
-import com.hp.hpl.jena.query.ResultSet ;
-import com.hp.hpl.jena.query.ResultSetFactory ;
+import com.hp.hpl.jena.query.ResultSet;
+import com.hp.hpl.jena.query.ResultSetFactory;
+import com.hp.hpl.jena.sparql.ARQException;
public class TestResultSetFormat2
{
- @Test public void resultset_10()
+ @Test (expected=ARQException.class) public void resultset_10()
{
// This is illegal
// Two vars, row of 3 values.
@@ -26,7 +27,7 @@ public class TestResultSetFormat2
ByteArrayInputStream in = new ByteArrayInputStream(b) ;
ResultSet rs2 = ResultSetFactory.fromTSV(in) ;
}
-
+
}
/*
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/TSVInput.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/TSVInput.java?rev=1136339&r1=1136338&r2=1136339&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/TSVInput.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/resultset/TSVInput.java Thu Jun 16 09:30:15 2011
@@ -34,10 +34,12 @@ public class TSVInput {
List<Binding> bindings = new ArrayList<Binding>();
boolean first = true;
+ String str = null;
+ int line = 0;
try {
- String line = null;
- while ( ( line = reader.readLine() ) != null ) {
- StringTokenizer st = new StringTokenizer(line, "\t");
+ while ( ( str = reader.readLine() ) != null ) {
+ line++;
+ StringTokenizer st = new StringTokenizer(str, "\t");
if ( first ) {
while ( st.hasMoreTokens() ) {
String token = st.nextToken();
@@ -49,7 +51,10 @@ public class TSVInput {
}
first = false;
} else {
- int i = 0;
+ if ( st.countTokens() > vars.size() ) {
+ throw new ARQException(String.format("Line %d has %d values instead of %d.", line, st.countTokens(), vars.size()));
+ }
+ int i = 0;
Binding binding = BindingFactory.create();
while ( st.hasMoreTokens() ) {
String token = st.nextToken();