[ 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)