docs: public static File createTempDirectory(String prefix, String suffix, File directory) throws IOException {
  		if (prefix == null) {
  			throw new NullPointerException();
  		}
  		if (prefix.length() < 3) {
  			throw new IllegalArgumentException(Locale.getString("E4", 3, prefix)); //$NON-NLS-1$
  		}
  		final String string = (suffix == null) ? ".tmp" : suffix; //$NON-NLS-1$
  		final File targetDirectory;
  		if (directory == null) {
  			targetDirectory = new File(System.getProperty("java.io.tmpdir")); //$NON-NLS-1$
  		} else {
  			targetDirectory = directory;
  		}
  		File filename;
  		do {
  			long index = RANDOM.nextLong();
  			if (index == Long.MIN_VALUE) {
  				// corner case
  				index = 0;
  			} else {
  				index = Math.abs(index);
  			}
  			final StringBuilder buffer = new StringBuilder();
  			buffer.append(prefix);
  			buffer.append(Long.toString(index));
  			buffer.append(string);
  			filename = new File(targetDirectory, buffer.toString());
  		}
  		while (!filename.mkdirs());
  		return filename;
  	}