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);
+		
 	}
 
 	/**