You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2007/12/12 10:47:30 UTC
svn commit: r603526 -
/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/slingservlets/DefaultSlingServlet.java
Author: bdelacretaz
Date: Wed Dec 12 01:47:29 2007
New Revision: 603526
URL: http://svn.apache.org/viewvc?rev=603526&view=rev
Log:
SLING-135, make content-type selection more robust in DefaultSlingServlet
Modified:
incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/slingservlets/DefaultSlingServlet.java
Modified: incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/slingservlets/DefaultSlingServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/slingservlets/DefaultSlingServlet.java?rev=603526&r1=603525&r2=603526&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/slingservlets/DefaultSlingServlet.java (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/java/org/apache/sling/microsling/slingservlets/DefaultSlingServlet.java Wed Dec 12 01:47:29 2007
@@ -16,6 +16,7 @@
*/
package org.apache.sling.microsling.slingservlets;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -138,12 +139,33 @@
{
postServlet.service(request, response);
}
+
+ /** SLING-135, find Content-Type for given URL, in a safe way
+ * TODO: use the MimeTypeService from sling-commons?
+ * */
+ protected String getContentType(URL url) {
+ String result = null;
+
+ // get the filename from the URL
+ String filename = url.getPath();
+ filename = new File(filename).getName();
+
+ // get content-type, avoid null
+ // previously used conn.getContentType(), but see SLING-112
+ if(filename!=null) {
+ result = getServletContext().getMimeType(filename);
+ }
+ if(result==null) {
+ result = "application/octet-stream";
+ }
+
+ return result;
+ }
protected void spool(URL url, SlingHttpServletResponse res) throws IOException {
URLConnection conn = url.openConnection();
- // this previously used conn.getContentType(), but see SLING-112
- res.setContentType(getServletContext().getMimeType(url.getFile()));
+ res.setContentType(getContentType(url));
if (conn.getContentLength() > 0 ) {
res.setContentLength(conn.getContentLength());
}