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();