[ https://issues.apache.org/jira/browse/JENA-2257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17480012#comment-17480012 ]
Andy Seaborne commented on JENA-2257: ------------------------------------- Adding to {{params}} could have been done earlier (if not {{asPost}}) and then removed if there is a change of plan. The calculation of length can done without actually making the query string. I'm not sure what the general practice is for triple stores and SPARQL libraries - I would not be surprised if it is common to just have POST+body and just be done with it. Use with HTML forms and POST is for direct from HTML page use. Thanks for the suggestion about "query(String)". As a personal preference, I don't like long methods and tend to pull out the stages into nearby private methods to make new "verbs" for the process {{query(String)}} can be renamed {{performQuery(String)}} because it is clearer as an action name.. And move the building steps into a {{makeRequest}} so {{performQuery}} is shorter. We can see what that looks like. > 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)