@Override
  public boolean isEqual(String val1, String val2) {
    if (!PORTABLE_CACHES) return FileUtil.pathsEqual(val1, val2);
    // On case insensitive OS hash calculated from path converted to lower case
    if (Strings.areSameInstance(val1, val2)) return true;
    if (val1 == null || val2 == null) return false;

    String path1 = FileUtil.toCanonicalPath(val1);
    String path2 = FileUtil.toCanonicalPath(val2);
    return path1.equals(path2);
  }
@Override
  public boolean isEqual(String val1, String val2)