You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Jan Martin Keil (Jira)" <ji...@apache.org> on 2022/01/20 12:55:00 UTC

[jira] [Updated] (JENA-2257) QueryExecHTTP#actualSendMode ignores query length causing HTTP 414

     [ https://issues.apache.org/jira/browse/JENA-2257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Martin Keil updated JENA-2257:
----------------------------------
    Description: 
{_}QueryExecHTTP#actualSendMode(){_}, called in {_}QueryExecHTTP#query(String reqAcceptHeader){_}, does not consider the length of the query. In case of long queries, this causes _414 Request-URI Too Long_ errors, even if {_}sendMode=={_}{_}QuerySendMode{_}{_}.asGetWithLimitBody:{_}
{quote}HttpException: 414 Request-URI Too Long
    at org.apache.jena.sparql.engine.http.QueryExceptionHTTP.rewrap(QueryExceptionHTTP.java:49)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.executeQuery(QueryExecHTTP.java:493)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.query(QueryExecHTTP.java:483)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.execRdfWorker(QueryExecHTTP.java:339)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.execGraph(QueryExecHTTP.java:287)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.construct(QueryExecHTTP.java:244)
    at org.apache.jena.sparql.exec.QueryExecutionAdapter.execConstruct(QueryExecutionAdapter.java:129)
{quote}
Workaround:
_QuerySendMode.systemDefault = QuerySendMode.asPost;_

  was:
{_}QueryExecHTTP#actualSendMode(){_}, called in {_}QueryExecHTTP#query(String reqAcceptHeader){_}, does not consider the length of the query. In case of long queries, this causes _414 Request-URI Too Long_ errors, even if {_}sendMode=={_}{_}QuerySendMode{_}{_}.asGetWithLimitBody:{_}
{quote}HttpException: 414 Request-URI Too Long 
java.util.concurrent.CompletionException: HttpException: 414 Request-URI Too Long
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
    at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
    at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787)
    at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: HttpException: 414 Request-URI Too Long
    at org.apache.jena.sparql.engine.http.QueryExceptionHTTP.rewrap(QueryExceptionHTTP.java:49)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.executeQuery(QueryExecHTTP.java:493)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.query(QueryExecHTTP.java:483)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.execRdfWorker(QueryExecHTTP.java:339)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.execGraph(QueryExecHTTP.java:287)
    at org.apache.jena.sparql.exec.http.QueryExecHTTP.construct(QueryExecHTTP.java:244)
    at org.apache.jena.sparql.exec.QueryExecutionAdapter.execConstruct(QueryExecutionAdapter.java:129)
{quote}
Workaround:
_QuerySendMode.systemDefault = QuerySendMode.asPost;_


> QueryExecHTTP#actualSendMode ignores query length causing HTTP 414
> ------------------------------------------------------------------
>
>                 Key: JENA-2257
>                 URL: https://issues.apache.org/jira/browse/JENA-2257
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ, SPARQL
>    Affects Versions: Jena 4.3.2
>            Reporter: Jan Martin Keil
>            Priority: Major
>
> {_}QueryExecHTTP#actualSendMode(){_}, called in {_}QueryExecHTTP#query(String reqAcceptHeader){_}, does not consider the length of the query. In case of long queries, this causes _414 Request-URI Too Long_ errors, even if {_}sendMode=={_}{_}QuerySendMode{_}{_}.asGetWithLimitBody:{_}
> {quote}HttpException: 414 Request-URI Too Long
>     at org.apache.jena.sparql.engine.http.QueryExceptionHTTP.rewrap(QueryExceptionHTTP.java:49)
>     at org.apache.jena.sparql.exec.http.QueryExecHTTP.executeQuery(QueryExecHTTP.java:493)
>     at org.apache.jena.sparql.exec.http.QueryExecHTTP.query(QueryExecHTTP.java:483)
>     at org.apache.jena.sparql.exec.http.QueryExecHTTP.execRdfWorker(QueryExecHTTP.java:339)
>     at org.apache.jena.sparql.exec.http.QueryExecHTTP.execGraph(QueryExecHTTP.java:287)
>     at org.apache.jena.sparql.exec.http.QueryExecHTTP.construct(QueryExecHTTP.java:244)
>     at org.apache.jena.sparql.exec.QueryExecutionAdapter.execConstruct(QueryExecutionAdapter.java:129)
> {quote}
> Workaround:
> _QuerySendMode.systemDefault = QuerySendMode.asPost;_



--
This message was sent by Atlassian Jira
(v8.20.1#820001)