private static File createTempFile()

in src/main/java/org/apache/datasketches/characterization/ResourceFiles.java [208:237]


  private static File createTempFile(final String shortFileName) {
    //remove any leading slash
    final String resName = (shortFileName.charAt(0) == '/') ? shortFileName.substring(1) : shortFileName;
    final String suffix;
    final String name;
    final int  lastIdx = resName.length() - 1;
    final int lastIdxOfDot = resName.lastIndexOf('.');
    if (lastIdxOfDot == -1) {
      suffix = ".tmp";
      name = resName;
    } else if (lastIdxOfDot == lastIdx) {
      suffix = ".tmp";
      name = resName.substring(0, lastIdxOfDot);
    } else { //has a real suffix
      suffix = resName.substring(lastIdxOfDot);
      name = resName.substring(0, lastIdxOfDot);
    }
    final File file;
    try {
      file = File.createTempFile("temp_" + name, suffix);
      if (!file.setReadable(false, true)) {
        throw new IllegalStateException("Failed to set only owner 'Readable' on file");
      }
      if (!file.setWritable(false, true)) {
        throw new IllegalStateException("Failed to set only owner 'Writable' on file");
      }

    } catch (final IOException e) { throw new RuntimeException(e); }
    return file;
  }