This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit b00841e72b50061172d653dbe9ee37e7337376c4 Author: Andy Seaborne <[email protected]> AuthorDate: Wed Nov 27 16:49:37 2024 +0000 Rename Responses.doResponseBoolean; code tidy --- .../jena/fuseki/servlets/ResponseResultSet.java | 2 +- .../org/apache/jena/fuseki/servlets/Responses.java | 48 ++++++++++++---------- .../jena/fuseki/servlets/SPARQLQueryProcessor.java | 2 +- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java index 51a51c4dfa..054dde3252 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java @@ -31,7 +31,7 @@ import org.apache.jena.sparql.exec.RowSet; public class ResponseResultSet { public static void doResponseResultSet(HttpAction action, Boolean booleanResult) { - Responses.doResponseResultSet(action, booleanResult); + Responses.doResponseBoolean(action, booleanResult); } public static void doResponseResultSet(HttpAction action, ResultSet resultSet, Prologue qPrologue) { diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/Responses.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/Responses.java index a0943fdb6f..018a6290a0 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/Responses.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/Responses.java @@ -149,7 +149,7 @@ public class Responses // Jetty closes the stream if it is a gzip stream. } - public static void doResponseResultSet(HttpAction action, Boolean booleanResult) { + public static void doResponseBoolean(HttpAction action, Boolean booleanResult) { ResponseResults.doResponseResultSet$(action, null, booleanResult, null, DEF.rsOfferBoolean); } @@ -231,23 +231,28 @@ public class Responses String charset = charsetUTF8; String jsonCallback = null; - if ( Objects.equals(serializationType, contentTypeResultsXML) ) { - charset = null; - if ( stylesheetURL != null ) - cxt.set(RowSetWriterXML.xmlStylesheet, stylesheetURL); - } - if ( Objects.equals(serializationType, contentTypeResultsJSON) ) { - jsonCallback = paramCallback(action.getRequest()); - } - if (Objects.equals(serializationType, WebContent.contentTypeResultsThrift) ) { - if ( booleanResult != null ) - ServletOps.errorBadRequest("Can't write a boolean result in thrift"); - charset = null; - } - if (Objects.equals(serializationType, WebContent.contentTypeResultsProtobuf) ) { - if ( booleanResult != null ) - ServletOps.errorBadRequest("Can't write a boolean result in protobuf"); - charset = null; + switch(serializationType) { + case contentTypeResultsXML-> { + // XML controls the character set + charset = null; + if ( stylesheetURL != null ) + cxt.set(RowSetWriterXML.xmlStylesheet, stylesheetURL); + } + case contentTypeResultsJSON -> { + // JSON is always UTF-8. + // charset = null; + jsonCallback = paramCallback(action.getRequest()); + } + case contentTypeResultsThrift -> { + if ( booleanResult != null ) + ServletOps.errorBadRequest("Can't write a boolean result in thrift"); + charset = null; + } + case contentTypeResultsProtobuf -> { + if ( booleanResult != null ) + ServletOps.errorBadRequest("Can't write a boolean result in protobuf"); + charset = null; + } } // Finally, the general case @@ -509,12 +514,13 @@ public class Responses // Stop caching (not that ?queryString URLs are cached anyway) if ( true ) ServletOps.setNoCache(action); - // See: http://www.w3.org/International/O-HTTP-charset.html if ( contentType != null ) { - if ( charset != null && !isXML(contentType) ) + if ( charset != null && !isXML(contentType) ) { + // Doing it ourselves means it is logged for "verbose" contentType = contentType + "; charset=" + charset; - action.log.trace("Content-Type for response: " + contentType); + } action.setResponseContentType(contentType); + action.log.trace("Content-Type for response: " + contentType); } } diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQLQueryProcessor.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQLQueryProcessor.java index b9600b03ad..6d527f18ee 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQLQueryProcessor.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQLQueryProcessor.java @@ -440,7 +440,7 @@ public abstract class SPARQLQueryProcessor extends ActionService // DESCRIBE results are graphs Responses.doResponseGraph(action, result.graph()); else if ( result.isBoolean() ) - Responses.doResponseResultSet(action, result.booleanResult()); + Responses.doResponseBoolean(action, result.booleanResult()); else if ( result.isJson() ) Responses.doResponseJson(action, result.jsonItems()); else
