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 2018/02/11 20:19:23 UTC

[1/4] jena git commit: JENA-1482: Binding checks

Repository: jena
Updated Branches:
  refs/heads/master c706ea4a7 -> cfad34201


JENA-1482: Binding checks


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bff3a9b8
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bff3a9b8
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bff3a9b8

Branch: refs/heads/master
Commit: bff3a9b8cf4bfade840dfcaadd955642f337ae64
Parents: 161c03e
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Feb 10 10:12:00 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Feb 10 10:12:00 2018 +0000

----------------------------------------------------------------------
 .../jena/sparql/engine/binding/BindingBase.java | 262 +++++++++----------
 .../sparql/engine/binding/BindingFactory.java   |  76 +++---
 .../sparql/engine/binding/BindingHashMap.java   |  93 +++----
 .../jena/sparql/engine/binding/BindingMap.java  |   7 +-
 4 files changed, 211 insertions(+), 227 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/bff3a9b8/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
index cc024b8..59c2a93 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingBase.java
@@ -23,6 +23,7 @@ import java.util.Objects;
 
 import org.apache.jena.atlas.iterator.IteratorConcat ;
 import org.apache.jena.graph.Node ;
+import org.apache.jena.sparql.ARQInternalErrorException;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.util.FmtUtils ;
 
@@ -38,192 +39,177 @@ import org.apache.jena.sparql.util.FmtUtils ;
 
 abstract public class BindingBase implements Binding
 {
-    static boolean CHECKING = true ;
-    static boolean UNIQUE_NAMES_CHECK = true ;
+    static final boolean CHECKING = true ;
+    /*package*/ static final boolean UNIQUE_NAMES_CHECK = false ;
     
     // This is a set of bindings, each binding being one pair (var, value).
-    protected Binding parent ;
-    
-    // Tracking children is for flexiblity.
-    
-    // It is not needed for flatten results sets (i.e. with nulls in)
-    // but is needed for nested result set that record subqueries.
-    // and have nested results.
-    
-    // But keeping the child reference means that used bindings are not freed
-    // to the GC until the parent is freed and hence the root is finished with -
-    // which is all results.
-    
-//    private List children = new ArrayList() ; 
-//    protected void addChild(Binding child) {  children.add(child) ; }
-//    private Iterator getChildren() { return children.listIterator() ; }
-    
-    protected BindingBase(Binding _parent)
-    {
-        parent = _parent ;
-        //parent.addChild((BindingBase)this) ;
+    protected final Binding parent ;
+
+    protected BindingBase(Binding _parent) {
+        parent = _parent;
+    }
+
+    public Binding getParent() {
+        return parent;
     }
-        
-    public Binding getParent() { return parent ; }
     
     /** Iterate over all the names of variables. */
     @Override
-    final public Iterator<Var> vars()
-    {
-        // Hidesight - replace with accumulator style vars1(accumulator) 
-        Iterator<Var> iter = vars1() ;
+    final public Iterator<Var> vars() {
+        // Hidesight - replace with accumulator style vars1(accumulator)
+        Iterator<Var> iter = vars1();
         if ( parent != null )
-            iter = IteratorConcat.concat(parent.vars(), iter ) ;
-        return iter ;
+            iter = IteratorConcat.concat(parent.vars(), iter);
+        return iter;
     }
-    protected abstract Iterator<Var> vars1() ;
+
+    protected abstract Iterator<Var> vars1();
     
     @Override
-    final public int size()
-    {
-        int x = size1() ;
+    final public int size() {
+        int x = size1();
         if ( parent != null )
-            x = x + parent.size() ;
-        return x ;
+            x = x + parent.size();
+        return x;
     }
-    
-    protected abstract int size1() ;
-    
+
+    protected abstract int size1();
+
     @Override
-    public boolean isEmpty() 
-    {
-        if ( ! isEmpty1() ) 
-            return false ;
+    public boolean isEmpty() {
+        if ( !isEmpty1() )
+            return false;
         if ( parent == null )
-            return true ;
-        return parent.isEmpty() ;
+            return true;
+        return parent.isEmpty();
     }
-    
-    protected abstract boolean isEmpty1() ;
+
+    protected abstract boolean isEmpty1();
     
     /** Test whether a name is bound to some object */
     @Override
-    public boolean contains(Var var)
-    {
+    public boolean contains(Var var) {
         if ( contains1(var) )
-            return true ;
+            return true;
         if ( parent == null )
-            return false ; 
-        return parent.contains(var) ; 
+            return false;
+        return parent.contains(var);
     }
     
-    protected abstract boolean contains1(Var var) ;
+    protected abstract boolean contains1(Var var);
 
     /** Return the object bound to a name, or null */
     @Override
-    final public Node get(Var var)
-    {
-        Node node = get1(var) ;
-        
+    final public Node get(Var var) {
+        Node node = get1(var);
+
         if ( node != null )
-            return node ;
-        
+            return node;
+
         if ( parent == null )
-            return null ; 
-        
-        return parent.get(var) ; 
+            return null;
+
+        return parent.get(var);
 
     }
-    protected abstract Node get1(Var var) ;
-    
-    @Override
-    public String toString()
-    {
-        StringBuffer sbuff = new StringBuffer() ;
-        format1(sbuff) ;
 
-        if ( parent != null )
-        {
-            String tmp = parent.toString() ;
-            if ( tmp != null && (tmp.length() != 0 ) )
-            {
-                sbuff.append(" -> ") ;
-                sbuff.append(tmp) ;
+    protected abstract Node get1(Var var);
+
+    protected static void checkPair(Var var, Node node) {
+        if ( !BindingBase.CHECKING )
+            return;
+        if ( var == null )
+            throw new ARQInternalErrorException("check(" + var + ", " + node + "): null var");
+        if ( node == null )
+            throw new ARQInternalErrorException("check(" + var + ", " + node + "): null node value");
+    }
+
+    @Override
+    public String toString() {
+        StringBuffer sbuff = new StringBuffer();
+        format1(sbuff);
+
+        if ( parent != null ) {
+            String tmp = parent.toString();
+            if ( tmp != null && (tmp.length() != 0) ) {
+                sbuff.append(" -> ");
+                sbuff.append(tmp);
             }
         }
-        return sbuff.toString() ;
-    }
-
-    // Do one level of binding 
-    public void format1(StringBuffer sbuff)
-    {
-        String sep = "" ;
-        for ( Iterator<Var> iter = vars1() ; iter.hasNext() ; ) 
-        {
-            Object obj = iter.next() ;
-            Var var = (Var)obj ;
-            
-            sbuff.append(sep) ;
-            sep = " " ;
-            format(sbuff, var) ;
+        return sbuff.toString();
+    }
+
+    // Do one level of binding
+    public void format1(StringBuffer sbuff) {
+        String sep = "";
+        for ( Iterator<Var> iter = vars1() ; iter.hasNext() ; ) {
+            Object obj = iter.next();
+            Var var = (Var)obj;
+
+            sbuff.append(sep);
+            sep = " ";
+            format(sbuff, var);
         }
     }
-    
-    protected void format(StringBuffer sbuff, Var var)
-    {
-        Node node = get(var) ;
-        String tmp = FmtUtils.stringForObject(node) ;
-        sbuff.append("( ?"+var.getVarName()+" = "+tmp+" )") ;
+
+    protected void format(StringBuffer sbuff, Var var) {
+        Node node = get(var);
+        String tmp = FmtUtils.stringForObject(node);
+        sbuff.append("( ?" + var.getVarName() + " = " + tmp + " )");
     }
-    
-    // Do one level of binding 
-    public String toString1()
-    {
-        StringBuffer sbuff = new StringBuffer() ;
-        format1(sbuff) ;
-        return sbuff.toString() ;
+
+    // Do one level of binding
+    public String toString1() {
+        StringBuffer sbuff = new StringBuffer();
+        format1(sbuff);
+        return sbuff.toString();
     }
 
     @Override
-    public int hashCode() { return hashCode(this) ; } 
-    
+    public int hashCode() {
+        return hashCode(this);
+    }
+
     @Override
-    public boolean equals(Object other)
-    {
-        if ( this == other ) return true ;
-        if ( ! ( other instanceof Binding) ) return false ;
-        Binding binding = (Binding)other ;
-        return equals(this, binding) ; 
+    public boolean equals(Object other) {
+        if ( this == other )
+            return true;
+        if ( !(other instanceof Binding) )
+            return false;
+        Binding binding = (Binding)other;
+        return equals(this, binding);
     }
 
     // Not everything derives from BindingBase.
-    public static int hashCode(Binding bind)
-    {
-        int hash = 0xC0 ;
-        for ( Iterator<Var> iter = bind.vars() ; iter.hasNext() ; )
-        {
-            Var var = iter.next() ; 
-            Node node = bind.get(var) ;
-            hash ^= var.hashCode() ;
-            hash ^= node.hashCode() ;
+    public static int hashCode(Binding bind) {
+        int hash = 0xC0;
+        for ( Iterator<Var> iter = bind.vars() ; iter.hasNext() ; ) {
+            Var var = iter.next();
+            Node node = bind.get(var);
+            hash ^= var.hashCode();
+            hash ^= node.hashCode();
         }
-        return hash ;
+        return hash;
     }
 
-    public static boolean equals(Binding bind1, Binding bind2)
-    {
-        if ( bind1 == bind2 ) return true ;
+    public static boolean equals(Binding bind1, Binding bind2) {
+        if ( bind1 == bind2 )
+            return true;
 
         // Same variables?
-        
+
         if ( bind1.size() != bind2.size() )
-            return false ;
-
-        for ( Iterator<Var> iter1 = bind1.vars() ; iter1.hasNext() ; )
-        {
-            Var var = iter1.next() ; 
-            Node node1 = bind1.get(var) ;
-            Node node2 = bind2.get(var) ;
-            if ( ! Objects.equals(node1, node2) )
-                return false ;
+            return false;
+
+        for ( Iterator<Var> iter1 = bind1.vars() ; iter1.hasNext() ; ) {
+            Var var = iter1.next();
+            Node node1 = bind1.get(var);
+            Node node2 = bind2.get(var);
+            if ( !Objects.equals(node1, node2) )
+                return false;
         }
-        
-        // No need to check the other way round as the sizes matched. 
-        return true ;
+
+        // No need to check the other way round as the sizes matched.
+        return true;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/bff3a9b8/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
index 8a524b4..cd22878 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingFactory.java
@@ -18,47 +18,59 @@
 
 package org.apache.jena.sparql.engine.binding;
 
-import java.util.Iterator ;
+import java.util.Iterator;
 
-import org.apache.jena.graph.Node ;
-import org.apache.jena.sparql.core.Var ;
+import org.apache.jena.graph.Node;
+import org.apache.jena.sparql.core.Var;
+
+public class BindingFactory {
+    public static final Binding noParent = null;
 
-public class BindingFactory
-{
-    public static final Binding noParent = null ; 
-    
     /** Create a binding of no pairs */
-    public static Binding binding() { return binding(noParent) ; }
-    
+    public static Binding binding() {
+        return binding(noParent);
+    }
+
     /** Create a binding of no pairs */
-    public static Binding binding(Binding parent) { return new Binding0(parent)  ; }
-    
-    public static Binding binding(Var var, Node node) { return binding(noParent, var, node) ; }
-    
+    public static Binding binding(Binding parent) {
+        return new Binding0(parent);
+    }
+
+    public static Binding binding(Var var, Node node) {
+        return binding(noParent, var, node);
+    }
+
     /** Create a binding of one (var, value) pair */
-    public static Binding binding(Binding parent, Var var, Node node)
-    {
+    public static Binding binding(Binding parent, Var var, Node node) {
+        BindingBase.checkPair(var, node);
         if ( Var.isAnonVar(var) )
-            return new Binding0(parent) ;
-        return new Binding1(parent, var, node) ;
+            return new Binding0(parent);
+        return new Binding1(parent, var, node);
+    }
+
+    public static BindingMap create() {
+        return create(noParent);
+    }
+
+    public static BindingMap create(Binding parent) {
+        return new BindingHashMap(parent);
+    }
+
+    public static Binding root() {
+        return BindingRoot.create();
     }
-    
-    public static BindingMap create() { return create(noParent) ; }
-    public static BindingMap create(Binding parent) { return new BindingHashMap(parent)  ; }
-    
-    public static Binding root() { return BindingRoot.create() ; }
 
-    /** Create a new Binding as a copy of an existing one.
-     * Additionally, it guarantees to touch each element of the binding */ 
-    public static Binding materialize(Binding b)
-    {
-        Iterator<Var> vIter = b.vars() ; 
-        BindingMap b2 = create() ; 
-        while( vIter.hasNext() )
-        {
+    /**
+     * Create a new Binding as a copy of an existing one. Additionally, it guarantees to
+     * touch each element of the binding
+     */
+    public static Binding materialize(Binding b) {
+        Iterator<Var> vIter = b.vars();
+        BindingMap b2 = create();
+        while (vIter.hasNext()) {
             Var v = vIter.next();
-            b2.add(v, b.get(v)) ;
+            b2.add(v, b.get(v));
         }
-        return b2 ;
+        return b2;
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/bff3a9b8/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingHashMap.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingHashMap.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingHashMap.java
index 6c507c6..80d0495 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingHashMap.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingHashMap.java
@@ -22,7 +22,6 @@ import java.util.HashMap ;
 import java.util.Iterator ;
 import java.util.Map ;
 
-import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.sparql.ARQInternalErrorException ;
 import org.apache.jena.sparql.core.Var ;
@@ -31,88 +30,76 @@ import org.apache.jena.sparql.util.FmtUtils ;
 /** A mutable mapping from a name to a value such that we can create a tree of levels
  *  with higher (earlier levels) being shared.
  *  Looking up a name is done by looking in the current level,
- *  then trying the parent is not found. */
+ *  then trying the parent is not found.
+ */
 
 public class BindingHashMap extends BindingBase implements BindingMap
 {
     // Bindings are often small.  Is this overkill? 
-    Map<Var, Node> map = new HashMap<>() ;
+    private Map<Var, Node> map = new HashMap<>() ;
     
     /** Using BindingFactory.create is better */
     public BindingHashMap(Binding parent) { super(parent) ; }
     /** Using BindingFactory.create is better */
-    public BindingHashMap() { super(BindingRoot.create()) ; } // null?
+    public BindingHashMap() { super(BindingRoot.create()) ; }
 
     /** Add a (name,value) */
-    
-    protected void add1(Var var, Node node)
-    {
-        if ( ! Var.isAnonVar(var) )
-            map.put(var, node) ;
+
+    protected void add1(Var var, Node node) {
+        if ( !Var.isAnonVar(var) )
+            map.put(var, node);
     }
 
     @Override
-    protected int size1() { return map.size() ; }
-    
+    protected int size1() {
+        return map.size();
+    }
+
     @Override
-    protected boolean isEmpty1() { return map.isEmpty() ; }
-    
-    /** Iterate over all the names of variables.
+    protected boolean isEmpty1() {
+        return map.isEmpty();
+    }
+
+    /**
+     * Iterate over all the names of variables.
      */
     @Override
-    public Iterator<Var> vars1() 
-    {
+    public Iterator<Var> vars1() {
         // Assumes that varnames are NOT duplicated.
-        Iterator<Var> iter = map.keySet().iterator() ;
-        return iter ;
+        Iterator<Var> iter = map.keySet().iterator();
+        return iter;
     }
-    
+
     @Override
-    public boolean contains1(Var var)
-    {
-        return map.containsKey(var) ;
+    public boolean contains1(Var var) {
+        return map.containsKey(var);
     }
-    
+
     @Override
-    public Node get1(Var var)
-    {
-        return map.get(var) ;
+    public Node get1(Var var) {
+        return map.get(var);
     }
 
     /** Add a (var,value) - the node value is never null */
     @Override
-    final public void add(Var var, Node node)
-    { 
-        if ( node == null )
-        {
-            Log.warn(this, "Binding.add: null value - ignored") ;
-            return ;
-        }
-        checkAdd(var, node) ;
-        add1(var, node) ;
+    final public void add(Var var, Node node) {
+        checkAdd(var, node);
+        add1(var, node);
     }
 
     @Override
-    final public void addAll(Binding other)
-    {
-        BindingUtils.addAll(this, other) ;
+    final public void addAll(Binding other) {
+        BindingUtils.addAll(this, other);
     }
-    
-    private void checkAdd(Var var, Node node)
-    {
-        if ( ! CHECKING )
-            return ;
-        if ( var == null )
-            throw new ARQInternalErrorException("check("+var+", "+node+"): null var" ) ;
-        if ( node == null )
-            throw new ARQInternalErrorException("check("+var+", "+node+"): null node value" ) ;
-        if ( UNIQUE_NAMES_CHECK && contains(var) )
-            throw new ARQInternalErrorException("Attempt to reassign '"+var+
-                                                "' from '"+FmtUtils.stringForNode(get(var))+
-                                                "' to '"+FmtUtils.stringForNode(node)+"'") ;
+
+    private void checkAdd(Var var, Node node) {
+        BindingBase.checkPair(var, node);
+        if ( BindingBase.UNIQUE_NAMES_CHECK && contains(var) )
+            throw new ARQInternalErrorException("Attempt to reassign '" + var + "' from '" + FmtUtils.stringForNode(get(var)) + "' to '"
+                                                + FmtUtils.stringForNode(node) + "'");
         // Let the implementation do a check as well.
-        checkAdd1(var, node) ;
+        checkAdd1(var, node);
     }
 
-    protected void checkAdd1(Var v, Node node) { }
+    protected void checkAdd1(Var v, Node node) {}
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/bff3a9b8/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingMap.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingMap.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingMap.java
index 0761fb0..40a942d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingMap.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/binding/BindingMap.java
@@ -28,11 +28,10 @@ import org.apache.jena.sparql.core.Var ;
  * returned as type "Binding".  
  */
 
-public interface BindingMap extends Binding
-{
+public interface BindingMap extends Binding {
     /** Add a (var, value) pair - the value must not be null */
-    public void add(Var var, Node node) ;
+    public void add(Var var, Node node);
 
     /** Add all the (var, value) pairs from another binding */
-    public void addAll(Binding other) ;
+    public void addAll(Binding other);
 }


[2/4] jena git commit: Fixes for transactions after JENA-1458

Posted by an...@apache.org.
Fixes for transactions after JENA-1458


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/6b9aade5
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/6b9aade5
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/6b9aade5

Branch: refs/heads/master
Commit: 6b9aade53585159d2937a6ac0b52a0eaf6498acb
Parents: 161c03e
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Feb 11 19:02:46 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Feb 11 19:02:46 2018 +0000

----------------------------------------------------------------------
 .../apache/jena/sparql/core/DatasetImpl.java    | 30 +++++++++++---------
 .../sparql/core/TransactionalNotSupported.java  |  1 -
 jena-cmds/src/main/java/arq/query.java          |  2 +-
 3 files changed, 17 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6b9aade5/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
index dfb8262..3ee9228 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
@@ -42,9 +42,9 @@ import org.apache.jena.sparql.util.NodeUtils ;
 
 public class DatasetImpl implements Dataset 
 {
-    protected DatasetGraph dsg = null ;
+    protected final DatasetGraph dsg;
     // Allow for an external transactional. 
-    private Transactional transactional = null ;
+    private final Transactional transactional;
 
     /** Wrap an existing DatasetGraph */
     public static Dataset wrap(DatasetGraph datasetGraph) {
@@ -52,7 +52,7 @@ public class DatasetImpl implements Dataset
     }
     
     protected DatasetImpl(DatasetGraph dsg) {
-        this(dsg,  (dsg.supportsTransactions() ? dsg : null)) ; 
+        this(dsg,  (dsg.supportsTransactions() ? dsg : new TransactionalNotSupported())) ; 
     }
 
     protected DatasetImpl(DatasetGraph dsg, Transactional transactional) {
@@ -97,6 +97,16 @@ public class DatasetImpl implements Dataset
     }
     
     @Override
+    public boolean supportsTransactions() {
+        return dsg.supportsTransactions();
+    }
+
+    @Override
+    public boolean supportsTransactionAbort() {
+        return dsg.supportsTransactionAbort();
+    }
+
+    @Override
     public void begin() {
         checkTransactional();
         transactional.begin();
@@ -116,33 +126,25 @@ public class DatasetImpl implements Dataset
 
     @Override
     public boolean promote() {
+        checkTransactional();
         return transactional.promote();
     }
 
     @Override
     public ReadWrite transactionMode() {
+        checkTransactional();
         return transactional.transactionMode();
     }
 
     @Override
     public TxnType transactionType() {
+        checkTransactional();
         return transactional.transactionType();
     }
 
-    @Override
-    public boolean supportsTransactions() {
-        return true;
-    }
-
-    @Override
-    public boolean supportsTransactionAbort() {
-        return false;
-    }
-    
     /** Say whether a transaction is active */ 
     @Override
     public boolean isInTransaction() {
-        checkTransactional();
         return transactional != null && transactional.isInTransaction();
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b9aade5/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
index f2ef1a0..1d3d959 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
@@ -89,7 +89,6 @@ public class TransactionalNotSupported implements Transactional
     @Override public TxnType transactionType()
     { throw new UnsupportedOperationException("Transactional.transactionType") ; }
 
-
     @Override
     public void end()
     { throw new UnsupportedOperationException("Transactional.end") ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b9aade5/jena-cmds/src/main/java/arq/query.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/query.java b/jena-cmds/src/main/java/arq/query.java
index ceaa761..556d7f8 100644
--- a/jena-cmds/src/main/java/arq/query.java
+++ b/jena-cmds/src/main/java/arq/query.java
@@ -217,7 +217,7 @@ public class query extends CmdARQ
                 System.err.println("Dataset not specified in query nor provided on command line.");
                 throw new TerminationException(1);
             }
-            Transactional transactional = (dataset != null && dataset.supportsTransactionAbort()) ? dataset : new TransactionalNull() ;
+            Transactional transactional = (dataset != null && dataset.supportsTransactions()) ? dataset : new TransactionalNull() ;
             Txn.executeRead(transactional, ()->{
                 modTime.startTimer() ;
                 try ( QueryExecution qe = QueryExecutionFactory.create(query, dataset) ) {


[3/4] jena git commit: JENA-1482: Merge commit 'refs/pull/357/head' of https://github.com/apache/jena

Posted by an...@apache.org.
JENA-1482: Merge commit 'refs/pull/357/head' of https://github.com/apache/jena

This closes #357.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/17829d82
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/17829d82
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/17829d82

Branch: refs/heads/master
Commit: 17829d8295817a6489198d6d36bf6e2c4272b7bb
Parents: c706ea4 bff3a9b
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Feb 11 20:14:09 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Feb 11 20:14:09 2018 +0000

----------------------------------------------------------------------
 .../jena/sparql/engine/binding/BindingBase.java | 262 +++++++++----------
 .../sparql/engine/binding/BindingFactory.java   |  76 +++---
 .../sparql/engine/binding/BindingHashMap.java   |  93 +++----
 .../jena/sparql/engine/binding/BindingMap.java  |   7 +-
 4 files changed, 211 insertions(+), 227 deletions(-)
----------------------------------------------------------------------



[4/4] jena git commit: Merge commit 'refs/pull/359/head' of https://github.com/apache/jena

Posted by an...@apache.org.
Merge commit 'refs/pull/359/head' of https://github.com/apache/jena

This closes #359.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/cfad3420
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/cfad3420
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/cfad3420

Branch: refs/heads/master
Commit: cfad34201d68412f2398adad0022db14c0f91ec4
Parents: 17829d8 6b9aade
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Feb 11 20:15:00 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Feb 11 20:15:00 2018 +0000

----------------------------------------------------------------------
 .../apache/jena/sparql/core/DatasetImpl.java    | 30 +++++++++++---------
 .../sparql/core/TransactionalNotSupported.java  |  1 -
 jena-cmds/src/main/java/arq/query.java          |  2 +-
 3 files changed, 17 insertions(+), 16 deletions(-)
----------------------------------------------------------------------