You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2015/06/21 12:12:13 UTC
jena git commit: Changes to fix JENA-971
Repository: jena
Updated Branches:
refs/heads/master 788d6a24f -> 3206439e9
Changes to fix JENA-971
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3206439e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3206439e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3206439e
Branch: refs/heads/master
Commit: 3206439e9132cf18b2ec16becb5b6c832b8de8e6
Parents: 788d6a2
Author: Claude Warren <cl...@apache.org>
Authored: Sun Jun 21 11:11:16 2015 +0100
Committer: Claude Warren <cl...@apache.org>
Committed: Sun Jun 21 11:11:16 2015 +0100
----------------------------------------------------------------------
.../arq/querybuilder/AbstractQueryBuilder.java | 3 +++
.../arq/querybuilder/handlers/WhereHandler.java | 23 +++++++++++++++-----
2 files changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/3206439e/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java
index 63f068a..0b7c4c8 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/AbstractQueryBuilder.java
@@ -39,6 +39,8 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.graph.impl.LiteralLabelFactory ;
import org.apache.jena.query.Query ;
+import org.apache.jena.query.QueryExecutionFactory;
+import org.apache.jena.query.QueryFactory;
import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.riot.RiotException;
import org.apache.jena.riot.system.PrefixMapFactory;
@@ -364,4 +366,5 @@ public abstract class AbstractQueryBuilder<T extends AbstractQueryBuilder<T>>
new SelectHandler(q2).setVars(values);
return q2;
}
+
}
http://git-wip-us.apache.org/repos/asf/jena/blob/3206439e/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
index 826fd56..e8cb7c0 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/handlers/WhereHandler.java
@@ -241,18 +241,29 @@ public class WhereHandler implements Handler {
* @param subQuery The subquery to add as the union.
*/
public void addUnion(SelectBuilder subQuery) {
- ElementUnion union = new ElementUnion();
+ ElementUnion union=null;
+ ElementGroup clause = getClause();
+ // if the last element is a union make sure we add to it.
+ if ( ! clause.isEmpty() ) {
+ Element lastElement = clause.getElements().get(clause.getElements().size()-1);
+ if (lastElement instanceof ElementUnion)
+ {
+ union = (ElementUnion) lastElement;
+ }
+ }
+ if (union == null)
+ {
+ union = new ElementUnion();
+ clause.addElement( union );
+ }
if (subQuery.getVars().size() > 0) {
union.addElement(makeSubQuery(subQuery));
} else {
PrologHandler ph = new PrologHandler(query);
ph.addAll(subQuery.getPrologHandler());
- for (Element el : subQuery.getWhereHandler().getClause()
- .getElements()) {
- union.addElement(el);
- }
+ union.addElement( subQuery.getWhereHandler().getClause() );
}
- getClause().addElement(union);
+
}
/**