public static boolean uriCaseCheck ( File file , String matchString ) throws java . io . IOException { if ( isCaseInsensitive || isWindows ) { // security measure to ensure that this check is only performed on case // sensitive servers // begin 154268 matchString = WSUtil . resolveURI ( matchString ) ; // (removed since it is changed to "//" inside of resolveURI // matchString = matchString.replace ('/', '\\'); // change string from // url format to Windows format // end 154268 matchString = matchString . replace ( ' ' , File . separatorChar ) ; String canPath = file . getCanonicalPath ( ) ; // begin 540920 change for drive letter ignore case on Win 2008 int offset = 0 ; int inx = matchString . length ( ) ; if ( isWindows && inx > 1 && canPath . length ( ) > 0 && matchString . charAt ( 1 ) == ' ' ) { // check that the string to match starts with a drive letter (':'), and // the drive letter is the same as canonical if ( ! ( matchString . substring ( 0 , 1 ) . equalsIgnoreCase ( canPath . substring ( 0 , 1 ) ) ) ) { return false ; } // make the offset 1 for the regionMatches so that we do not compare the // drive letters offset = 1 ; } return canPath . regionMatches ( canPath . length ( ) - inx + offset , matchString , offset , inx - offset ) ; // end 540920 } return true ; }
Not a problem on UNIX type systems since the OS handles is case sensitive .