In my HttpResponseCache project, I have the same case-sensitive comparison. I also did some web searching, and the other implementations of URLStreamHandlerFactory do case sensitive comparison too (for schemes including jar, http, file, https, etc). So I think it is expected to be lower case. If you think it should be case insensitive, I wouldn't object to using equalsIgnoreCase.