You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/10/13 17:58:12 UTC
svn commit: r1397869 - in
/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki:
conneg/ConNeg.java servlets/ResponseModel.java
servlets/ResponseResultSet.java
Author: andy
Date: Sat Oct 13 15:58:12 2012
New Revision: 1397869
URL: http://svn.apache.org/viewvc?rev=1397869&view=rev
Log:
JENA-243 (potential null-dereference)
Modified:
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/conneg/ConNeg.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseModel.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/conneg/ConNeg.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/conneg/ConNeg.java?rev=1397869&r1=1397868&r2=1397869&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/conneg/ConNeg.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/conneg/ConNeg.java Sat Oct 13 15:58:12 2012
@@ -109,7 +109,11 @@ public class ConNeg
AcceptList headerList = new AcceptList(headerString) ;
if ( myPrefs == null )
- return headerList.first() ;
+ {
+ MediaType i = headerList.first() ;
+ if ( i == null ) return defaultMediaType ;
+ return i ;
+ }
MediaType i = AcceptList.match(headerList, myPrefs) ;
if ( i == null )
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseModel.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseModel.java?rev=1397869&r1=1397868&r2=1397869&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseModel.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseModel.java Sat Oct 13 15:58:12 2012
@@ -61,48 +61,48 @@ public class ResponseModel
}
public static void doResponseModel(Model model, HttpServletRequest request, HttpServletResponse response)
+ {
+ String mimeType = null ; // Header request type
+
+ // TODO Use MediaType throughout.
+ MediaType i = ConNeg.chooseContentType(request, DEF.rdfOffer, DEF.acceptRDFXML) ;
+ if ( i != null )
+ mimeType = i.getContentType() ;
+
+ String outputField = ResponseOps.paramOutput(request, shortNamesModel) ;
+ if ( outputField != null )
+ mimeType = outputField ;
+
+ String writerMimeType = mimeType ;
+
+ if ( mimeType == null )
+ {
+ Fuseki.requestLog.warn("Can't find MIME type for response") ;
+ String x = WebLib.getAccept(request) ;
+ String msg ;
+ if ( x == null )
+ msg = "No Accept: header" ;
+ else
+ msg = "Accept: "+x+" : Not understood" ;
+ SPARQL_ServletBase.error(HttpSC.NOT_ACCEPTABLE_406, msg) ;
+ }
+
+ String contentType = mimeType ;
+ String charset = WebContent.charsetUTF8 ;
+
+ String forceAccept = ResponseOps.paramForceAccept(request) ;
+ if ( forceAccept != null )
{
- String mimeType = null ; // Header request type
-
- // TODO Use MediaType throughout.
- MediaType i = ConNeg.chooseContentType(request, DEF.rdfOffer, DEF.acceptRDFXML) ;
- if ( i != null )
- mimeType = i.getContentType() ;
-
- String outputField = ResponseOps.paramOutput(request, shortNamesModel) ;
- if ( outputField != null )
- mimeType = outputField ;
-
- String writerMimeType = mimeType ;
-
- if ( mimeType == null )
- {
- Fuseki.requestLog.warn("Can't find MIME type for response") ;
- String x = WebLib.getAccept(request) ;
- String msg ;
- if ( x == null )
- msg = "No Accept: header" ;
- else
- msg = "Accept: "+x+" : Not understood" ;
- SPARQL_ServletBase.error(HttpSC.NOT_ACCEPTABLE_406, msg) ;
- }
-
- String contentType = mimeType ;
- String charset = WebContent.charsetUTF8 ;
-
- String forceAccept = ResponseOps.paramForceAccept(request) ;
- if ( forceAccept != null )
- {
- contentType = WebContent.contentTypeTextPlain ;
- charset = WebContent.charsetUTF8 ;
- }
-
- Lang lang = FusekiLib.langFromContentType(contentType) ;
- RDFWriter rdfw = FusekiLib.chooseWriter(lang) ;
-
- if ( rdfw instanceof RDFXMLWriterI )
- rdfw.setProperty("showXmlDeclaration", "true") ;
-
+ contentType = WebContent.contentTypeTextPlain ;
+ charset = WebContent.charsetUTF8 ;
+ }
+
+ Lang lang = FusekiLib.langFromContentType(contentType) ;
+ RDFWriter rdfw = FusekiLib.chooseWriter(lang) ;
+
+ if ( rdfw instanceof RDFXMLWriterI )
+ rdfw.setProperty("showXmlDeclaration", "true") ;
+
// // Write locally to check it's possible.
// // Time/space tradeoff.
// try {
@@ -113,16 +113,15 @@ public class ResponseModel
// {
// SPARQL_ServletBase.errorOccurred(ex) ;
// }
-
- try {
- ResponseResultSet.setHttpResponse(request, response, contentType, charset) ;
- response.setStatus(HttpSC.OK_200) ;
- ServletOutputStream out = response.getOutputStream() ;
- rdfw.write(model, out, null) ;
- out.flush() ;
- }
- catch (Exception ex) { SPARQL_ServletBase.errorOccurred(ex) ; }
- }
+ try {
+ ResponseResultSet.setHttpResponse(request, response, contentType, charset) ;
+ response.setStatus(HttpSC.OK_200) ;
+ ServletOutputStream out = response.getOutputStream() ;
+ rdfw.write(model, out, null) ;
+ out.flush() ;
+ }
+ catch (Exception ex) { SPARQL_ServletBase.errorOccurred(ex) ; }
+ }
}
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java?rev=1397869&r1=1397868&r2=1397869&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ResponseResultSet.java Sat Oct 13 15:58:12 2012
@@ -30,6 +30,7 @@ import org.apache.jena.fuseki.DEF ;
import org.apache.jena.fuseki.FusekiException ;
import org.apache.jena.fuseki.conneg.ConNeg ;
import org.apache.jena.fuseki.http.HttpSC ;
+import static org.openjena.atlas.lib.Lib.equal ;
import org.openjena.atlas.web.AcceptList ;
import org.openjena.atlas.web.MediaType ;
import org.openjena.riot.WebContent ;
@@ -114,7 +115,7 @@ public class ResponseResultSet
// Stylesheet - change to application/xml.
final String stylesheetURL = ResponseOps.paramStylesheet(request) ;
- if ( stylesheetURL != null && serializationType.equals(WebContent.contentTypeResultsXML))
+ if ( stylesheetURL != null && equal(serializationType,WebContent.contentTypeResultsXML) )
contentType = WebContent.contentTypeXML ;
// Force to text/plain?
@@ -124,7 +125,7 @@ public class ResponseResultSet
// Better : dispatch on MediaType
// ---- Form: XML
- if ( serializationType.equals(WebContent.contentTypeResultsXML) )
+ if ( equal(serializationType, WebContent.contentTypeResultsXML) )
{
try {
sparqlXMLOutput(contentType, new OutputContent(){
@@ -143,7 +144,7 @@ public class ResponseResultSet
}
// ---- Form: JSON
- if ( serializationType.equals(WebContent.contentTypeResultsJSON) )
+ if ( equal(serializationType, WebContent.contentTypeResultsJSON) )
{
try {
jsonOutput(contentType, new OutputContent(){
@@ -163,7 +164,7 @@ public class ResponseResultSet
}
// ---- Form: text
- if ( serializationType.equals(WebContent.contentTypeTextPlain) )
+ if ( equal(serializationType, WebContent.contentTypeTextPlain) )
{
try {
textOutput(contentType, new OutputContent(){
@@ -189,8 +190,8 @@ public class ResponseResultSet
return ;
}
- if ( serializationType.equals(WebContent.contentTypeTextCSV) ||
- serializationType.equals(WebContent.contentTypeTextTSV) )
+ if ( equal(serializationType, WebContent.contentTypeTextCSV) ||
+ equal(serializationType, WebContent.contentTypeTextTSV) )
{
try {
OutputContent output ;