Repository: jena Updated Branches: refs/heads/master aafd5d644 -> 2b79b0efb
JENA-873 : Fix for absence of Content-Type in a POST. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2b79b0ef Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2b79b0ef Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2b79b0ef Branch: refs/heads/master Commit: 2b79b0efbad2d1082a0869011de1e8395bbc88a4 Parents: aafd5d6 Author: Andy Seaborne <[email protected]> Authored: Thu Jan 29 16:30:12 2015 +0000 Committer: Andy Seaborne <[email protected]> Committed: Thu Jan 29 16:30:12 2015 +0000 ---------------------------------------------------------------------- .../apache/jena/fuseki/servlets/SPARQL_Query.java | 18 ++++++++++-------- .../apache/jena/fuseki/servlets/SPARQL_Query.java | 13 ++++++++----- 2 files changed, 18 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/2b79b0ef/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java ---------------------------------------------------------------------- diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java index 9de80bc..06f8340 100644 --- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java +++ b/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java @@ -78,28 +78,30 @@ public abstract class SPARQL_Query extends SPARQL_Protocol protected final void perform(HttpAction action) { // GET - if ( action.request.getMethod().equals(HttpNames.METHOD_GET) ) - { + if ( action.request.getMethod().equals(HttpNames.METHOD_GET) ) { executeWithParameter(action) ; return ; } ContentType ct = FusekiLib.getContentType(action) ; + if ( ct == null ) { + // Validation check it's POST with ?query= + executeWithParameter(action) ; + return ; + } + String incoming = ct.getContentType() ; - // POST application/sparql-query - if (WebContent.contentTypeSPARQLQuery.equals(incoming)) - { + if (WebContent.contentTypeSPARQLQuery.equals(incoming)) { executeBody(action) ; return ; } // POST application/x-www-form-url - if (WebContent.contentTypeHTMLForm.equals(incoming)) - { + if (WebContent.contentTypeHTMLForm.equals(incoming)) { executeWithParameter(action) ; return ; } - + error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Bad content type: "+incoming) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/2b79b0ef/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java index 6ab3f71..5a70c7b 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java @@ -101,10 +101,11 @@ public abstract class SPARQL_Query extends SPARQL_Protocol } ContentType ct = FusekiLib.getContentType(action) ; - String incoming = ct.getContentType() ; // POST application/x-www-form-url - if ( isHtmlForm(ct) ) { + // POST ?query= and no Content-Type + if ( ct == null || isHtmlForm(ct) ) { + // validation checked that if no Content-type, then its a POST with ?query= executeWithParameter(action) ; return ; } @@ -115,7 +116,7 @@ public abstract class SPARQL_Query extends SPARQL_Protocol return ; } - ServletOps.error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Bad content type: " + incoming) ; + ServletOps.error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Bad content type: " + ct.getContentType()) ; } // All the params we support @@ -170,8 +171,10 @@ public abstract class SPARQL_Query extends SPARQL_Protocol if ( matchContentType(ctSPARQLQuery, ct) ) { mustHaveQueryParam = false ; - } else if ( matchContentType(ctHTMLForm, ct)) - {} + // Drop through. + } else if ( matchContentType(ctHTMLForm, ct)) { + // Nothing specific to do + } else ServletOps.error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Unsupported: " + incoming) ; }
