Except that URLConnection#getContentType doesn't even use MimeTable: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/sun/net/www/URLConnection.java?av=f#147
URLConnection#guessContentTypeFromStream is what it's using: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/net/URLConnection.java#URLConnection.guessContentTypeFromStream%28java.io.InputStream%29 Ugh - what a mess. That seems like a very arbitrary set of filetypes to test for (FlashPix?). It sees that the SVG file starts with <?xml…, so it returns application/xml - not wrong, per se - but not accurate enough. > On my > machine > System.err.println(URLConnection.getFileNameMap().getContentTypeFor("file.svg")); > prints null Same here. However, the following returns "application/xml" (test.svg must be an SVG file, of course): System.err.println(URLConnection.guessContentTypeFromStream(getClass().getResourceAsStream("test.svg"))); Thanks, Chris -- Chris Snyder Web Developer, BioLogos 616.328.5208 x203 biologos.org On Jul 30, 2013, at 13:52, Martin Grigorov <mgrigo...@apache.org> wrote: > This is nasty indeed! > > According to > http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/sun/net/www/MimeTable.java#MimeTable > the > mime types are loaded from mailcap files. > See "man update-mime" > > > On Tue, Jul 30, 2013 at 7:40 PM, Chris Snyder > <chris.sny...@biologos.org>wrote: > >> However, just above that (line 122) it gets the contentType from the >> URLConnection, which returns "application/xml". Since >> streamData.contentType is not null, it never gets to line 126. >> >> Thanks so much for your help! >> >> -Chris >> -- >> Chris Snyder >> Web Developer, BioLogos >> 616.328.5208 x203 >> biologos.org >> >> On Jul 30, 2013, at 13:30, Martin Grigorov <mgrigo...@apache.org> wrote: >> >>> Hi, >>> >>> According to >>> >> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/core/util/resource/UrlResourceStream.java?source=cc#L126 >>> if >>> theere is an application then it should be used before falling back. >> >>