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 2015/05/28 21:35:08 UTC
[1/7] jena git commit: Use constant from RDF.xmlLiteral.
Repository: jena
Updated Branches:
refs/heads/master a1b3182bd -> e789e9f3d
Use constant from RDF.xmlLiteral.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/46253a48
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/46253a48
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/46253a48
Branch: refs/heads/master
Commit: 46253a48f5e477ce0e504c60a02cafe1df946543
Parents: a1b3182
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 19:12:36 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 19:12:36 2015 +0100
----------------------------------------------------------------------
jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderTriX.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/46253a48/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderTriX.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderTriX.java b/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderTriX.java
index 30269e9..208a53a 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderTriX.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/lang/ReaderTriX.java
@@ -36,7 +36,6 @@ import javax.xml.stream.* ;
import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.datatypes.RDFDatatype ;
import org.apache.jena.datatypes.xsd.XSDDatatype ;
-import org.apache.jena.datatypes.xsd.impl.XMLLiteralType ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.graph.Triple ;
@@ -101,7 +100,7 @@ public class ReaderTriX implements ReaderRIOT {
private static String nsRDF = RDF.getURI() ;
private static String nsXSD = XSDDatatype.XSD ; // No "#"
private static String nsXML0 = "http://www.w3.org/XML/1998/namespace" ;
- private static String rdfXMLLiteral = XMLLiteralType.theXMLLiteralType.getURI() ;
+ private static String rdfXMLLiteral = RDF.xmlLiteral.getURI() ;
enum State { OUTER, TRIX, GRAPH, TRIPLE }
[3/7] jena git commit: Bump version.
Posted by an...@apache.org.
Bump version.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/50c63f69
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/50c63f69
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/50c63f69
Branch: refs/heads/master
Commit: 50c63f69b2577b10d6794c2c3c023b39e244fd4a
Parents: 6d44e24
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 19:13:07 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 19:13:07 2015 +0100
----------------------------------------------------------------------
jena-fuseki1/soh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/50c63f69/jena-fuseki1/soh
----------------------------------------------------------------------
diff --git a/jena-fuseki1/soh b/jena-fuseki1/soh
index 4f6590d..9f6a619 100755
--- a/jena-fuseki1/soh
+++ b/jena-fuseki1/soh
@@ -35,7 +35,7 @@ require 'ostruct'
# Follow redirects => 301: puts response["location"] # All headers are lowercase?
SOH_NAME="SOH"
-SOH_VERSION="0.0.0"
+SOH_VERSION="0.0.2"
$proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : OpenStruct.new
[7/7] jena git commit: JENA-950 : Better error message.
Posted by an...@apache.org.
JENA-950 : Better error message.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e789e9f3
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e789e9f3
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e789e9f3
Branch: refs/heads/master
Commit: e789e9f3d77d410cda0df03a270ff8d00948a375
Parents: 8c6e0b2
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 20:34:25 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 20:34:25 2015 +0100
----------------------------------------------------------------------
.../apache/jena/query/text/TextIndexLucene.java | 20 ++++----------------
.../query/text/TextIndexParseException.java | 16 ++++++++++++----
2 files changed, 16 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e789e9f3/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
index 910411a..9c14c27 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
@@ -19,30 +19,18 @@
package org.apache.jena.query.text ;
import java.io.IOException ;
-import java.util.ArrayList ;
-import java.util.HashMap ;
-import java.util.List ;
-import java.util.Map ;
+import java.util.* ;
import java.util.Map.Entry ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
-import org.apache.jena.query.QueryBuildException ;
import org.apache.jena.sparql.util.NodeFactoryExtra ;
import org.apache.lucene.analysis.Analyzer ;
import org.apache.lucene.analysis.core.KeywordAnalyzer ;
import org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper ;
import org.apache.lucene.analysis.standard.StandardAnalyzer ;
-import org.apache.lucene.document.Document ;
-import org.apache.lucene.document.Field ;
-import org.apache.lucene.document.FieldType ;
-import org.apache.lucene.document.StringField ;
-import org.apache.lucene.document.TextField ;
-import org.apache.lucene.index.DirectoryReader ;
-import org.apache.lucene.index.IndexReader ;
-import org.apache.lucene.index.IndexWriter ;
-import org.apache.lucene.index.IndexWriterConfig ;
-import org.apache.lucene.index.Term;
+import org.apache.lucene.document.* ;
+import org.apache.lucene.index.* ;
import org.apache.lucene.queryparser.classic.ParseException ;
import org.apache.lucene.queryparser.classic.QueryParser ;
import org.apache.lucene.queryparser.classic.QueryParserBase ;
@@ -318,7 +306,7 @@ public class TextIndexLucene implements TextIndex {
return query$(indexReader, qs, limit) ;
}
catch (ParseException ex) {
- throw new QueryBuildException(ex.getMessage()) ;
+ throw new TextIndexParseException(qs, ex.getMessage()) ;
}
catch (Exception ex) {
throw new TextIndexException(ex) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/e789e9f3/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
index c869044..da32c03 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
@@ -23,10 +23,18 @@ import org.apache.jena.query.QueryParseException ;
public class TextIndexParseException extends QueryParseException
{
- public TextIndexParseException() { super(-1,-1) ; }
- public TextIndexParseException(Throwable cause) { super(cause,-1,-1) ; }
- public TextIndexParseException(String msg) { super(msg,-1,-1) ; }
- public TextIndexParseException(String msg, Throwable cause) { super(msg, cause,-1,-1) ; }
+// public TextIndexParseException(String textQuery) { super(message(textQuery, null),-1,-1) ; }
+// public TextIndexParseException(String textQuery, Throwable cause) { super(message(textQuery,null), cause,-1,-1) ; }
+ public TextIndexParseException(String textQuery, String msg) { super(message(textQuery,msg),-1,-1) ; }
+ public TextIndexParseException(String textQuery, String msg, Throwable cause) { super(message(textQuery,msg), cause,-1,-1) ; }
+
+ private static String message(String textQuery, String errorMessage) {
+ // No need to include the textQuery as Lucene puts it in.
+ String msg = ( errorMessage == null )
+ ? "Text search parse error: text query '"+textQuery+"'"
+ : "Text search parse error:\n"+errorMessage ;
+ return msg ;
+ }
}
[6/7] jena git commit: JENA-950 : Specific TextIdexParseException
Posted by an...@apache.org.
JENA-950 : Specific TextIdexParseException
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8c6e0b2a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8c6e0b2a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8c6e0b2a
Branch: refs/heads/master
Commit: 8c6e0b2aa5314cccd701fd47b08fff588a679009
Parents: 10df2c3
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 20:21:03 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 20:21:03 2015 +0100
----------------------------------------------------------------------
.../org/apache/jena/query/text/TextIndex.java | 4 ++-
.../apache/jena/query/text/TextIndexLucene.java | 8 +++--
.../query/text/TextIndexParseException.java | 32 ++++++++++++++++++++
3 files changed, 41 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8c6e0b2a/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
index 69efb31..fe19b7b 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
@@ -45,7 +45,9 @@ public interface TextIndex extends Closeable //, Transactional
//** score
// Need to have more complex results.
- /** Access the index - limit if -1 for as many as possible */
+ /** Access the index - limit if -1 for as many as possible
+ * Throw QueryParseException for syntax errors in the query string.
+ */
List<Node> query(String qs, int limit) ;
List<Node> query(String qs) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/8c6e0b2a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
index cd9ea2f..910411a 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
@@ -27,6 +27,7 @@ import java.util.Map.Entry ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.query.QueryBuildException ;
import org.apache.jena.sparql.util.NodeFactoryExtra ;
import org.apache.lucene.analysis.Analyzer ;
import org.apache.lucene.analysis.core.KeywordAnalyzer ;
@@ -268,7 +269,7 @@ public class TextIndexLucene implements TextIndex {
Query query = queryParser.parse(queryString) ;
return query ;
}
-
+
protected Query preParseQuery(String queryString, String primaryField, Analyzer analyzer) throws ParseException {
return parseQuery(queryString, primaryField, analyzer);
}
@@ -315,7 +316,10 @@ public class TextIndexLucene implements TextIndex {
//** score
try (IndexReader indexReader = DirectoryReader.open(directory)) {
return query$(indexReader, qs, limit) ;
- }
+ }
+ catch (ParseException ex) {
+ throw new QueryBuildException(ex.getMessage()) ;
+ }
catch (Exception ex) {
throw new TextIndexException(ex) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8c6e0b2a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
new file mode 100644
index 0000000..c869044
--- /dev/null
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexParseException.java
@@ -0,0 +1,32 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.text;
+
+import org.apache.jena.query.QueryParseException ;
+
+
+public class TextIndexParseException extends QueryParseException
+{
+ public TextIndexParseException() { super(-1,-1) ; }
+ public TextIndexParseException(Throwable cause) { super(cause,-1,-1) ; }
+ public TextIndexParseException(String msg) { super(msg,-1,-1) ; }
+ public TextIndexParseException(String msg, Throwable cause) { super(msg, cause,-1,-1) ; }
+
+}
+
[2/7] jena git commit: Make local code private.
Posted by an...@apache.org.
Make local code private.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/6d44e248
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/6d44e248
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/6d44e248
Branch: refs/heads/master
Commit: 6d44e24802ac0948b091f931a965c4bb6e36bf38
Parents: 46253a4
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 19:12:55 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 19:12:55 2015 +0100
----------------------------------------------------------------------
.../test/java/org/apache/jena/graph/test/NodeCreateUtils.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/6d44e248/jena-core/src/test/java/org/apache/jena/graph/test/NodeCreateUtils.java
----------------------------------------------------------------------
diff --git a/jena-core/src/test/java/org/apache/jena/graph/test/NodeCreateUtils.java b/jena-core/src/test/java/org/apache/jena/graph/test/NodeCreateUtils.java
index d6ec208..4e97012 100644
--- a/jena-core/src/test/java/org/apache/jena/graph/test/NodeCreateUtils.java
+++ b/jena-core/src/test/java/org/apache/jena/graph/test/NodeCreateUtils.java
@@ -98,7 +98,7 @@ public class NodeCreateUtils
;
}
- public static String unEscape( String spelling )
+ private static String unEscape( String spelling )
{
if (spelling.indexOf( '\\' ) < 0) return spelling;
StringBuilder result = new StringBuilder( spelling.length() );
@@ -115,7 +115,7 @@ public class NodeCreateUtils
return result.toString();
}
- public static char unEscape( char ch )
+ private static char unEscape( char ch )
{
switch (ch)
{
[5/7] jena git commit: Tidy code
Posted by an...@apache.org.
Tidy code
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/10df2c34
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/10df2c34
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/10df2c34
Branch: refs/heads/master
Commit: 10df2c34904a024e3af0748f1af70d40d9fe18d0
Parents: 7f806f7
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 20:20:38 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 20:20:38 2015 +0100
----------------------------------------------------------------------
.../apache/jena/query/text/TextIndexSolr.java | 125 +++++++++----------
.../org/apache/jena/query/text/TextQueryPF.java | 68 ++++++----
2 files changed, 101 insertions(+), 92 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/10df2c34/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
index 54a3263..718d4c7 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
@@ -47,71 +47,69 @@ public class TextIndexSolr implements TextIndex
private final EntityDefinition docDef ;
private static final int MAX_N = 10000 ;
- public TextIndexSolr(SolrServer server, EntityDefinition def)
- {
+ public TextIndexSolr(SolrServer server, EntityDefinition def) {
this.solrServer = server ;
this.docDef = def ;
}
@Override
public void updateEntity(Entity entity) {
- throw new RuntimeException("TextIndexSolr.updateEntity not implemented.");
+ throw new RuntimeException("TextIndexSolr.updateEntity not implemented.") ;
}
@Override
- public void prepareCommit() { }
+ public void prepareCommit() {}
@Override
public void commit() {
try {
- solrServer.commit();
+ solrServer.commit() ;
}
catch (SolrServerException e) {
- throw new TextIndexException(e);
+ throw new TextIndexException(e) ;
}
catch (IOException e) {
- throw new TextIndexException(e);
+ throw new TextIndexException(e) ;
}
}
@Override
public void rollback() {
try {
- solrServer.rollback();
+ solrServer.rollback() ;
}
catch (SolrServerException e) {
- throw new TextIndexException(e);
+ throw new TextIndexException(e) ;
}
catch (IOException e) {
- throw new TextIndexException(e);
+ throw new TextIndexException(e) ;
}
}
@Override
- public void close()
- {
- if ( solrServer != null )
+ public void close() {
+ if ( solrServer != null )
solrServer.shutdown() ;
}
@Override
- public void addEntity(Entity entity)
- {
- //log.info("Add entity: "+entity) ;
+ public void addEntity(Entity entity) {
+ // log.info("Add entity: "+entity) ;
try {
SolrInputDocument doc = solrDoc(entity) ;
solrServer.add(doc) ;
- } catch (Exception e) { exception(e) ; }
+ }
+ catch (Exception e) {
+ exception(e) ;
+ }
}
- private SolrInputDocument solrDoc(Entity entity)
- {
+ private SolrInputDocument solrDoc(Entity entity) {
SolrInputDocument doc = new SolrInputDocument() ;
doc.addField(docDef.getEntityField(), entity.getId()) ;
String graphField = docDef.getGraphField() ;
- if ( graphField != null )
- {
+ if ( graphField != null ) {
doc.addField(graphField, entity.getGraph()) ;
}
@@ -119,53 +117,50 @@ public class TextIndexSolr implements TextIndex
// otherwise, if we have multiple fields, each successive
// addition will replace the previous one and we are left
// with only the last field indexed.
- // see http://stackoverflow.com/questions/12183798/solrj-api-for-partial-document-update
- // and https://svn.apache.org/repos/asf/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
- HashMap<String,Object> map = new HashMap<>();
+ // see
+ // http://stackoverflow.com/questions/12183798/solrj-api-for-partial-document-update
+ // and
+ // https://svn.apache.org/repos/asf/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
+ HashMap<String, Object> map = new HashMap<>() ;
for ( Entry<String, Object> e : entity.getMap().entrySet() ) {
- map.put("add", e.getValue());
+ map.put("add", e.getValue()) ;
doc.addField(e.getKey(), map) ;
}
return doc ;
}
@Override
- public Map<String, Node> get(String uri)
- {
+ public Map<String, Node> get(String uri) {
String escaped = ClientUtils.escapeQueryChars(uri) ;
- String qs = docDef.getEntityField()+":"+escaped ;
- SolrDocumentList solrResults = solrQuery(qs,1) ;
+ String qs = docDef.getEntityField() + ":" + escaped ;
+ SolrDocumentList solrResults = solrQuery(qs, 1) ;
List<Map<String, Node>> records = process(solrResults) ;
if ( records.size() == 0 )
return null ;
if ( records.size() > 1 )
- log.warn("Multiple docs for one URI: "+uri) ;
+ log.warn("Multiple docs for one URI: " + uri) ;
return records.get(0) ;
}
- private List<Map<String, Node>> process(SolrDocumentList solrResults)
- {
+ private List<Map<String, Node>> process(SolrDocumentList solrResults) {
List<Map<String, Node>> records = new ArrayList<>() ;
- for ( SolrDocument sd : solrResults )
- {
+ for ( SolrDocument sd : solrResults ) {
Map<String, Node> record = new HashMap<>() ;
String uriStr = (String)sd.getFieldValue(docDef.getEntityField()) ;
Node entity = NodeFactory.createURI(uriStr) ;
record.put(docDef.getEntityField(), entity) ;
- for ( String f : docDef.fields() )
- {
- //log.info("Field: "+f) ;
+ for ( String f : docDef.fields() ) {
+ // log.info("Field: "+f) ;
Object obj = sd.getFieldValue(f) ;
- //log.info("Value: "+obj) ;
+ // log.info("Value: "+obj) ;
if ( obj == null )
continue ;
// Multivalued -> array.
- // Null means "not stored" or "not present"
- if ( obj instanceof List<?> )
- {
+ // Null means "not stored" or "not present"
+ if ( obj instanceof List<? > ) {
@SuppressWarnings("unchecked")
List<String> vals = (List<String>)obj ;
continue ;
@@ -176,7 +171,7 @@ public class TextIndexSolr implements TextIndex
record.put(f, n) ;
}
- //log.info("Entity: "+uriStr) ;
+ // log.info("Entity: "+uriStr) ;
records.add(record) ;
}
return records ;
@@ -186,17 +181,15 @@ public class TextIndexSolr implements TextIndex
public List<Node> query(String qs) { return query(qs, 0) ; }
@Override
- public List<Node> query(String qs, int limit)
- {
+ public List<Node> query(String qs, int limit) {
SolrDocumentList solrResults = solrQuery(qs, limit) ;
List<Node> results = new ArrayList<>() ;
- for ( SolrDocument sd : solrResults )
- {
- //** score
+ for ( SolrDocument sd : solrResults ) {
+ // ** score
// 'score' field.
String str = (String)sd.getFieldValue(docDef.getEntityField()) ;
- //log.info("Entity: "+uriStr) ;
+ // log.info("Entity: "+uriStr) ;
Node n = TextQueryFuncs.stringToNode(str) ;
results.add(n) ;
}
@@ -204,43 +197,45 @@ public class TextIndexSolr implements TextIndex
if ( limit > 0 && results.size() > limit )
results = results.subList(0, limit) ;
- return results ;
+ return results ;
}
- private SolrDocumentList solrQuery(String qs, int limit)
- {
+ private SolrDocumentList solrQuery(String qs, int limit) {
SolrQuery sq = new SolrQuery(qs) ;
- //** score
- //sq.setIncludeScore(true) ;
+ // ** score
+ // sq.setIncludeScore(true) ;
if ( limit > 0 )
sq.setRows(limit) ;
- else
- sq.setRows(MAX_N) ; // The Solr default is 10.
+ else
+ sq.setRows(MAX_N) ; // The Solr default is 10.
try {
// Set default field.
sq.add(CommonParams.DF, docDef.getPrimaryField()) ;
- QueryResponse rsp = solrServer.query( sq ) ;
- SolrDocumentList docs = rsp.getResults();
+ QueryResponse rsp = solrServer.query(sq) ;
+ SolrDocumentList docs = rsp.getResults() ;
return docs ;
- } catch (SolrServerException e) { exception(e) ; return null ; }
+ }
+ catch (SolrServerException e) {
+ exception(e) ;
+ return null ;
+ }
}
@Override
- public EntityDefinition getDocDef()
- {
+ public EntityDefinition getDocDef() {
return docDef ;
}
- private Node entryToNode(String v)
- {
+ private Node entryToNode(String v) {
// TEMP
return NodeFactoryExtra.createLiteralNode(v, null, null) ;
}
- public SolrServer getServer() { return solrServer ; }
+ public SolrServer getServer() {
+ return solrServer ;
+ }
- private static Void exception(Exception ex)
- {
+ private static Void exception(Exception ex) {
throw new TextIndexException(ex) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/10df2c34/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
index f74db79..5a48add 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
@@ -52,7 +52,7 @@ public class TextQueryPF extends PropertyFunctionBase {
* Look for "//** score" in TextQueryPF, TextIndexLucene and TextIndexSolr
*/
- private TextIndex server = null ;
+ private TextIndex textIndex = null ;
private boolean warningIssued = false ;
public TextQueryPF() {}
@@ -65,25 +65,27 @@ public class TextQueryPF extends PropertyFunctionBase {
//** score
// Subject possibilities become ?foo or (?foo ?score)
DatasetGraph dsg = execCxt.getDataset() ;
- server = chooseTextIndex(dsg) ;
-
+ textIndex = chooseTextIndex(dsg) ;
if (!argSubject.isNode())
throw new QueryBuildException("Subject is not a single node: " + argSubject) ;
if (argObject.isList()) {
- //extract of extra lang arg if present and if is usable.
- //arg is removed from the list to avoid conflict with order and args length
- langArg = extractArg("lang", argObject);
-
- if (langArg != null && server.getDocDef().getLangField() == null)
- log.warn("lang argument is ignored if langField not set in the index configuration");
-
List<Node> list = argObject.getArgList() ;
+
if (list.size() == 0)
throw new QueryBuildException("Zero-length argument list") ;
if (list.size() > 4)
throw new QueryBuildException("Too many arguments in list : " + list) ;
+
+
+ //extract of extra lang arg if present and if is usable.
+ //arg is removed from the list to avoid conflict with order and args length
+ langArg = extractArg("lang", list);
+
+ if (langArg != null && textIndex.getDocDef().getLangField() == null)
+ log.warn("lang argument is ignored if langField not set in the index configuration");
+
}
}
@@ -109,10 +111,10 @@ public class TextQueryPF extends PropertyFunctionBase {
return null ;
}
- private String extractArg(String prefix, PropFuncArg argObject) {
+ private String extractArg(String prefix, List<Node> objArgs) {
String value = null;
int pos = 0;
- for (Node node : argObject.getArgList()) {
+ for (Node node : objArgs) {
if (node.isLiteral()) {
String arg = node.getLiteral().toString();
if (arg.startsWith(prefix + ":")) {
@@ -123,7 +125,7 @@ public class TextQueryPF extends PropertyFunctionBase {
pos++;
}
if (value != null)
- argObject.getArgList().remove(pos);
+ objArgs.remove(pos);
return value;
}
@@ -131,7 +133,7 @@ public class TextQueryPF extends PropertyFunctionBase {
@Override
public QueryIterator exec(Binding binding, PropFuncArg argSubject, Node predicate, PropFuncArg argObject,
ExecutionContext execCxt) {
- if (server == null) {
+ if (textIndex == null) {
if (!warningIssued) {
Log.warn(getClass(), "No text index - no text search performed") ;
warningIssued = true ;
@@ -154,7 +156,7 @@ public class TextQueryPF extends PropertyFunctionBase {
// Does not match
return IterLib.noResults(execCxt) ;
- StrMatch match = objectToStruct(argObject) ;
+ StrMatch match = objectToStruct(argObject, true) ;
if (match == null) {
// can't match
return IterLib.noResults(execCxt) ;
@@ -195,7 +197,7 @@ public class TextQueryPF extends PropertyFunctionBase {
private List<Node> query(String queryString, int limit, ExecutionContext execCxt) {
// use the graph information in the text index if possible
- if (server.getDocDef().getGraphField() != null
+ if (textIndex.getDocDef().getGraphField() != null
&& execCxt.getActiveGraph() instanceof GraphView) {
GraphView activeGraph = (GraphView)execCxt.getActiveGraph() ;
if (!Quad.isUnionGraph(activeGraph.getGraphName())) {
@@ -204,14 +206,14 @@ public class TextQueryPF extends PropertyFunctionBase {
? TextQueryFuncs.graphNodeToString(activeGraph.getGraphName())
: Quad.defaultGraphNodeGenerated.getURI() ;
String escaped = QueryParserBase.escape(uri) ;
- String qs2 = server.getDocDef().getGraphField() + ":" + escaped ;
+ String qs2 = textIndex.getDocDef().getGraphField() + ":" + escaped ;
queryString = "(" + queryString + ") AND " + qs2 ;
}
}
//for language-based search extension
- if (server.getDocDef().getLangField() != null) {
- String field = server.getDocDef().getLangField();
+ if (textIndex.getDocDef().getLangField() != null) {
+ String field = textIndex.getDocDef().getLangField();
if (langArg != null) {
String qs2 = !"none".equals(langArg)?
field + ":" + langArg : "-" + field + ":*";
@@ -222,16 +224,20 @@ public class TextQueryPF extends PropertyFunctionBase {
Explain.explain(execCxt.getContext(), "Text query: "+queryString) ;
if ( log.isDebugEnabled())
log.debug("Text query: {} ({})", queryString,limit) ;
- return server.query(queryString, limit) ;
+ return textIndex.query(queryString, limit) ;
}
- /** Deconstruct the node or list object argument and make a StrMatch */
- private StrMatch objectToStruct(PropFuncArg argObject) {
- EntityDefinition docDef = server.getDocDef() ;
+ /** Deconstruct the node or list object argument and make a StrMatch
+ * The 'executionTime' flag indciates whether this is for a build time
+ * static check, or for runtime execution.
+ */
+ private StrMatch objectToStruct(PropFuncArg argObject, boolean executionTime) {
+ EntityDefinition docDef = textIndex.getDocDef() ;
if (argObject.isNode()) {
Node o = argObject.getArg() ;
if (!o.isLiteral()) {
- log.warn("Object to text query is not a literal") ;
+ if ( executionTime )
+ log.warn("Object to text query is not a literal") ;
return null ;
}
@@ -250,7 +256,7 @@ public class TextQueryPF extends PropertyFunctionBase {
throw new TextIndexException("Change in object list size") ;
Node predicate = null ;
- String field = null ; // Do not prepend the feild name - rely on default field
+ String field = null ; // Do not prepend the field name - rely on default field
int idx = 0 ;
Node x = list.get(0) ;
// Property?
@@ -258,7 +264,7 @@ public class TextQueryPF extends PropertyFunctionBase {
predicate = x ;
idx++ ;
if (idx >= list.size())
- throw new TextIndexException("Property specificied but no query string : " + list) ;
+ throw new TextIndexException("Property specificed but no query string : " + list) ;
x = list.get(idx) ;
field = docDef.getField(predicate) ;
if (field == null) {
@@ -269,9 +275,11 @@ public class TextQueryPF extends PropertyFunctionBase {
// String!
if (!x.isLiteral()) {
- log.warn("Text query string is not a literal " + list) ;
+ if ( executionTime )
+ log.warn("Text query string is not a literal " + list) ;
return null ;
}
+
if (x.getLiteralDatatype() != null && !x.getLiteralDatatype().equals(XSDDatatype.XSDstring)) {
log.warn("Text query is not a string " + list) ;
return null ;
@@ -286,6 +294,12 @@ public class TextQueryPF extends PropertyFunctionBase {
// Limit?
x = list.get(idx) ;
idx++ ;
+ if ( ! x.isLiteral() ) {
+ if ( executionTime )
+ log.warn("Text query limit is not an integer " + x) ;
+ return null ;
+ }
+
int v = NodeFactoryExtra.nodeToInt(x) ;
limit = (v < 0) ? -1 : v ;
}
[4/7] jena git commit: JENA-950 : Generate bad request on runtime
parser errors.
Posted by an...@apache.org.
JENA-950 : Generate bad request on runtime parser errors.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/7f806f73
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/7f806f73
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/7f806f73
Branch: refs/heads/master
Commit: 7f806f737f217e0d8c60e751b47409b3d1ffdd11
Parents: 50c63f6
Author: Andy Seaborne <an...@apache.org>
Authored: Thu May 28 20:20:03 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu May 28 20:20:03 2015 +0100
----------------------------------------------------------------------
.../org/apache/jena/fuseki/servlets/SPARQL_Protocol.java | 9 ++++-----
.../java/org/apache/jena/fuseki/servlets/SPARQL_Query.java | 9 +++++++--
.../java/org/apache/jena/fuseki/servlets/SPARQL_Update.java | 7 ++++---
3 files changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/7f806f73/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
index 0be8b6c..f605060 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Protocol.java
@@ -24,14 +24,14 @@ import static org.apache.jena.riot.web.HttpNames.paramNamedGraphURI ;
import java.util.Arrays ;
import java.util.Collections ;
import java.util.List ;
-import java.util.function.Predicate;
+import java.util.function.Predicate ;
import javax.servlet.http.HttpServletRequest ;
import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.query.Query ;
-import org.apache.jena.query.QueryParseException ;
+import org.apache.jena.query.QueryException ;
import org.apache.jena.sparql.core.DatasetDescription ;
/** Support for the SPARQL protocol (SPARQL Query, SPARQL Update)
@@ -40,9 +40,8 @@ public abstract class SPARQL_Protocol extends ActionSPARQL
{
protected SPARQL_Protocol() { super() ; }
- protected static String messageForQPE(QueryParseException ex)
- {
- if ( ex.getMessage() != null )
+ protected static String messageForQueryException(QueryException ex)
+ { if ( ex.getMessage() != null )
return ex.getMessage() ;
if ( ex.getCause() != null )
return Lib.classShortName(ex.getCause().getClass()) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/7f806f73/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
index 28212a8..c411989 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
@@ -239,7 +239,7 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
} catch (ActionErrorException ex) {
throw ex ;
} catch (QueryParseException ex) {
- ServletOps.errorBadRequest("Parse error: \n" + queryString + "\n\r" + messageForQPE(ex)) ;
+ ServletOps.errorBadRequest("Parse error: \n" + queryString + "\n\r" + messageForQueryException(ex)) ;
}
// Should not happen.
catch (QueryException ex) {
@@ -255,7 +255,12 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
// Deals with exceptions itself.
sendResults(action, result, query.getPrologue()) ;
}
- } catch (QueryCancelledException ex) {
+ }
+ catch (QueryParseException ex) {
+ // Late stage static error (e.g. bad fixed Lucene query string).
+ ServletOps.errorBadRequest("Query parse error: \n" + queryString + "\n\r" + messageForQueryException(ex)) ;
+ }
+ catch (QueryCancelledException ex) {
// Additional counter information.
incCounter(action.getEndpoint().getCounters(), QueryTimeouts) ;
throw ex ;
http://git-wip-us.apache.org/repos/asf/jena/blob/7f806f73/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
index 52ba1a5..1750a1d 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
@@ -51,6 +51,7 @@ import org.apache.jena.fuseki.FusekiLib ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.iri.IRI ;
+import org.apache.jena.query.QueryBuildException ;
import org.apache.jena.query.QueryParseException ;
import org.apache.jena.query.Syntax ;
import org.apache.jena.riot.system.IRIResolver ;
@@ -210,7 +211,7 @@ public class SPARQL_Update extends SPARQL_Protocol
req = UpdateFactory.read(usingList, input, UpdateParseBase, Syntax.syntaxARQ);
}
catch (UpdateException ex) { ServletOps.errorBadRequest(ex.getMessage()) ; return ; }
- catch (QueryParseException ex) { ServletOps.errorBadRequest(messageForQPE(ex)) ; return ; }
+ catch (QueryParseException ex) { ServletOps.errorBadRequest(messageForQueryException(ex)) ; return ; }
}
action.beginWrite() ;
@@ -224,10 +225,10 @@ public class SPARQL_Update extends SPARQL_Protocol
action.abort() ;
incCounter(action.getEndpoint().getCounters(), UpdateExecErrors) ;
ServletOps.errorOccurred(ex.getMessage()) ;
- } catch (QueryParseException ex) {
+ } catch (QueryParseException|QueryBuildException ex) {
action.abort() ;
// Counter inc'ed further out.
- ServletOps.errorBadRequest(messageForQPE(ex)) ;
+ ServletOps.errorBadRequest(messageForQueryException(ex)) ;
} catch (Throwable ex) {
if ( ! ( ex instanceof ActionErrorException ) )
{