[ 
https://issues.apache.org/jira/browse/JENA-1212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15382385#comment-15382385
 ] 

ASF GitHub Bot commented on JENA-1212:
--------------------------------------

Github user ajs6f commented on a diff in the pull request:

    https://github.com/apache/jena/pull/157#discussion_r71161082
  
    --- Diff: 
jena-arq/src/main/java/org/apache/jena/atlas/data/SortedDataBag.java ---
    @@ -69,19 +69,81 @@
         
         protected final ThresholdPolicy<E> policy;
         protected final SerializationFactory<E> serializationFactory;
    -    protected final Comparator<? super E> comparator;
    +    protected final CanAbortComparator comparator;
         
         protected boolean finishedAdding = false;
         protected boolean spilled = false;
         protected boolean closed = false;
    +    protected volatile boolean cancelled;
         
         public SortedDataBag(ThresholdPolicy<E> policy, 
SerializationFactory<E> serializerFactory, Comparator<? super E> comparator)
         {
             this.policy = policy;
             this.serializationFactory = serializerFactory;
    -        this.comparator = comparator;
    +        this.comparator = new CanAbortComparator(comparator);
         }
         
    +    private final class CanAbortComparator implements Comparator<E> 
    --- End diff --
    
    It might be worth breaking this out into its own compilation unit. In the 
current arrangement, this is not a `static` class, and I don't think it could 
be because it is picking up the type parameter from the enclosing class. That 
doesn't seem ideal.


> allow ORDER BY sort to be cancelled
> -----------------------------------
>
>                 Key: JENA-1212
>                 URL: https://issues.apache.org/jira/browse/JENA-1212
>             Project: Apache Jena
>          Issue Type: Improvement
>          Components: ARQ
>            Reporter: christopher james dollin
>            Priority: Minor
>             Fix For: Jena 3.1.1
>
>
> When a query with an ORDER BY is cancelled, the component
> Arrays.sort() that sorts the chunk(s) of the result
> bindings runs to completion before the cancel finishes.
> [See QueryIterSort and SortedDataBag.]
> For a large result set, this results in a long wait
> before the cancelled request finally finishes. This
> can be inconvenient.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to