You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/07/20 10:59:09 UTC
svn commit: r1612062 - in /jena/trunk/jena-arq/src/main/java:
arq/qparse.java com/hp/hpl/jena/sparql/lang/ParserBase.java
Author: andy
Date: Sun Jul 20 08:59:09 2014
New Revision: 1612062
URL: http://svn.apache.org/r1612062
Log:
JENA-730 : (try to) accept all IRIs and print warnings on bad IRIs. Used to cause parse errors.
Modified:
jena/trunk/jena-arq/src/main/java/arq/qparse.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java
Modified: jena/trunk/jena-arq/src/main/java/arq/qparse.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/arq/qparse.java?rev=1612062&r1=1612061&r2=1612062&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/arq/qparse.java (original)
+++ jena/trunk/jena-arq/src/main/java/arq/qparse.java Sun Jul 20 08:59:09 2014
@@ -21,6 +21,7 @@ package arq;
import java.io.PrintStream ;
import java.util.Iterator ;
+import org.apache.jena.atlas.logging.LogCtl ;
import arq.cmd.CmdException ;
import arq.cmdline.ArgDecl ;
import arq.cmdline.CmdARQ ;
@@ -37,6 +38,7 @@ import com.hp.hpl.jena.query.Syntax ;
import com.hp.hpl.jena.shared.JenaException ;
import com.hp.hpl.jena.sparql.ARQInternalErrorException ;
import com.hp.hpl.jena.sparql.core.QueryCheckException ;
+import com.hp.hpl.jena.sparql.lang.ParserBase ;
import com.hp.hpl.jena.sparql.resultset.ResultSetException ;
import com.hp.hpl.jena.sparql.util.QueryOutputUtils ;
import com.hp.hpl.jena.sparql.util.QueryUtils ;
@@ -165,6 +167,7 @@ public class qparse extends CmdARQ
try{
Query query = modQuery.getQuery() ;
try {
+ LogCtl.disable(ParserBase.ParserLoggerName) ;
QueryUtils.checkQuery(query, true) ;
} catch (QueryCheckException ex)
{
@@ -173,6 +176,8 @@ public class qparse extends CmdARQ
if ( ex.getCause() != null )
ex.getCause().printStackTrace(System.err) ;
}
+ finally { LogCtl.set(ParserBase.ParserLoggerName, "INFO") ; }
+
// Print the query out in some syntax
if ( printQuery )
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java?rev=1612062&r1=1612061&r2=1612062&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/lang/ParserBase.java Sun Jul 20 08:59:09 2014
@@ -23,7 +23,13 @@ import java.util.HashSet ;
import java.util.Set ;
import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.iri.IRI ;
+import org.apache.jena.riot.checker.CheckerIRI ;
+import org.apache.jena.riot.system.ErrorHandler ;
+import org.apache.jena.riot.system.ErrorHandlerFactory ;
import org.apache.jena.riot.system.RiotLib ;
+import org.slf4j.Logger ;
+import org.slf4j.LoggerFactory ;
import com.hp.hpl.jena.datatypes.RDFDatatype ;
import com.hp.hpl.jena.datatypes.TypeMapper ;
@@ -234,14 +240,17 @@ public class ParserBase
// See RiotLib re bNode IRIs.
// Merge sometime.
- protected String resolveQuotedIRI(String iriStr ,int line, int column)
+ protected String resolveQuotedIRI(String iriStr, int line, int column)
{
iriStr = stripQuotes(iriStr) ;
return resolveIRI(iriStr, line, column) ;
}
-
- protected String resolveIRI(String iriStr ,int line, int column)
+ public static final String ParserLoggerName = "SPARQL" ;
+ private static Logger parserLog = LoggerFactory.getLogger(ParserLoggerName) ;
+ private static ErrorHandler errorHandler = ErrorHandlerFactory.errorHandlerStd(parserLog) ;
+
+ protected String resolveIRI(String iriStr, int line, int column)
{
if ( isBNodeIRI(iriStr) )
return iriStr ;
@@ -250,7 +259,12 @@ public class ParserBase
{
if ( getPrologue().getResolver() != null )
try {
- iriStr = getPrologue().getResolver().resolveSilent(iriStr).toString() ;
+ // Used to be errors (pre Jena 2.12.0)
+ // .resolve(iriStr)
+ IRI iri = getPrologue().getResolver().resolveSilent(iriStr) ;
+ if ( true )
+ CheckerIRI.iriViolations(iri, errorHandler, line, column) ;
+ iriStr = iri.toString() ;
} catch (JenaURIException ex)
{ throwParseException(ex.getMessage(), line, column) ; }
}