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

Jan Martin Keil edited comment on JENA-2257 at 1/21/22, 6:39 AM:
-----------------------------------------------------------------

Yes. I inspected it with a debugger and found, that {{params}} is empty and 
therefore {{{}qs.length() == 0{}}}.

Target server is [https://query.wikidata.org/sparql.]

Maybe the query should get added to {{params}} in {{query(String)}} instead of 
{{{}actualSendMode(){}}}, {{{}executeQueryPostBody(Params, String){}}}, 
{{{}executeQueryPostForm(Params, String){}}}, {{{}executeQueryGet(Params, 
String){}}}?

Further, one could have all sendMode options in {{query(String)}} logic and 
just use an extra method for the URL length calculation instead of 
{{actualSendMode()}}. That way, {{query(String)}} becomes easier to understand.


was (Author: jmkeil):
Yes. I inspected it with an debugger and found, that {{params}} is empty and 
therefore {{{}qs.length() == 0{}}}.

Target server is [https://query.wikidata.org/sparql.]

Maybe the query should get added to {{params}} in {{query(String)}} instead of 
{{{}actualSendMode(){}}}, {{{}executeQueryPostBody(Params, String){}}}, 
{{{}executeQueryPostForm(Params, String){}}}, {{{}executeQueryGet(Params, 
String){}}}?

Further, one could have all sendMode options in {{query(String)}} logic and 
just use an extra method for the URL length calculation instead of 
{{actualSendMode()}}. That way, {{query(String)}} becomes easier to understand.

> 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
>            Assignee: Andy Seaborne
>            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{_} (default):
> {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}
> Workarounds:
>  * _QuerySendMode.systemDefault = QuerySendMode.asPost;_
>  * _QueryExecution.service(…).sendMode(QuerySendMode.asPost)_



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

Reply via email to