Java Code Examples for java.nio.file.Files#getAttribute()
The following examples show how to use
java.nio.file.Files#getAttribute() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: UnixSocketClientProviderStrategy.java From testcontainers-java with MIT License | 6 votes |
@NotNull protected DockerClientConfig tryConfiguration(String dockerHost) { Path dockerSocketFile = Paths.get(DOCKER_SOCK_PATH); Integer mode; try { mode = (Integer) Files.getAttribute(dockerSocketFile, "unix:mode"); } catch (IOException e) { throw new InvalidConfigurationException("Could not find unix domain socket", e); } if ((mode & 0xc000) != SOCKET_FILE_MODE_MASK) { throw new InvalidConfigurationException("Found docker unix domain socket but file mode was not as expected (expected: srwxr-xr-x). This problem is possibly due to occurrence of this issue in the past: https://github.com/docker/docker/issues/13121"); } config = DefaultDockerClientConfig.createDefaultConfigBuilder() .withDockerHost(dockerHost) .withDockerTlsVerify(false) .build(); client = getClientForConfig(config); final int timeout = Integer.parseInt(System.getProperty(PING_TIMEOUT_PROPERTY_NAME, PING_TIMEOUT_DEFAULT)); ping(client, timeout); return config; }
Example 2
Source File: ReliableTaildirEventReader.java From uavstack with Apache License 2.0 | 6 votes |
private long getInode(File file) throws IOException { UserDefinedFileAttributeView view = null; // windows system and file customer Attribute if (OS_WINDOWS.equals(os)) { view = Files.getFileAttributeView(file.toPath(), UserDefinedFileAttributeView.class);// 把文件的内容属性值放置在view里面? try { ByteBuffer buffer = ByteBuffer.allocate(view.size(INODE));// view.size得到inode属性值大小 view.read(INODE, buffer);// 把属性值放置在buffer中 buffer.flip(); return Long.parseLong(Charset.defaultCharset().decode(buffer).toString());// 返回编码后的inode的属性值 } catch (NoSuchFileException e) { long winode = random.nextLong(); view.write(INODE, Charset.defaultCharset().encode(String.valueOf(winode))); return winode; } } long inode = (long) Files.getAttribute(file.toPath(), "unix:ino");// 返回unix的inode的属性值 return inode; }
Example 3
Source File: HardLink.java From lucene-solr with Apache License 2.0 | 5 votes |
/** * Retrieves the number of links to the specified file. */ public static int getLinkCount(File fileName) throws IOException { if (fileName == null) { throw new IOException( "invalid argument to getLinkCount: file name is null"); } if (!fileName.exists()) { throw new FileNotFoundException(fileName + " not found."); } return (Integer)Files.getAttribute(fileName.toPath(), "unix:nlink"); }
Example 4
Source File: TestFiles.java From jsr203-hadoop with Apache License 2.0 | 5 votes |
@Test public void setAttribute() throws IOException { Path rootPath = Paths.get(clusterUri); Path path = Files.createTempFile(rootPath, "test", "tmp"); Object att = Files.getAttribute(path, "hadoop:replication"); Assert.assertNotNull(att); Files.setAttribute(path, "hadoop:replication", att); }
Example 5
Source File: PathSubject.java From jimfs with Apache License 2.0 | 5 votes |
/** * Asserts that the file the path points to exists and has the given number of links to it. Fails * on a file system that does not support the "unix" view. */ public PathSubject hasLinkCount(int count) throws IOException { exists(); int linkCount = (int) Files.getAttribute(actual, "unix:nlink", linkOptions); if (linkCount != count) { failWithActual("expected to have link count", count); } return this; }
Example 6
Source File: TestAttributes.java From jsr203-hadoop with Apache License 2.0 | 5 votes |
@Test(expected = IllegalArgumentException.class) public void testReadInvalidAttribute() throws IOException { Path pathToTest = Paths.get(clusterUri); // Read invalid attribute Files.getAttribute(pathToTest, "basic:isNotValid"); }
Example 7
Source File: LocalFileSystemOperations.java From ats-framework with Apache License 2.0 | 5 votes |
/** * * @param filename the file name * @return the file user id * @throws FileSystemOperationException */ private long getUserId( String filename ) { try { Integer uid = (Integer) Files.getAttribute(new File(filename).toPath(), "unix:uid", LinkOption.NOFOLLOW_LINKS); return uid.longValue(); } catch (Exception e) { throw new FileSystemOperationException("Could not get UID for '" + filename + "'", e); } }
Example 8
Source File: CreationDateResolver.java From tutorials with MIT License | 5 votes |
public Optional<Instant> resolveCreationTimeWithAttribute(Path path) { try { final FileTime creationTime = (FileTime) Files.getAttribute(path, "creationTime"); return Optional .ofNullable(creationTime) .map((FileTime::toInstant)); } catch (IOException ex) { throw new RuntimeException("An issue occured went wrong when resolving creation time", ex); } }
Example 9
Source File: IOUtils.java From bazel-buildfarm with Apache License 2.0 | 5 votes |
public static long getInode(Path path) { try { return (long) Files.getAttribute(path, "unix:ino"); } catch (Exception e) { return -1; } }
Example 10
Source File: DflCache.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.sameTimeDiffHash((AuthTimeWithHash)a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 11
Source File: DflCache.java From hottub with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 12
Source File: DoTestRuleFilterFactory.java From uavstack with Apache License 2.0 | 4 votes |
@Test public void getFileAttributes() throws IOException { Object obj = Files.getAttribute(new File("/Users/fathead/temp/file3").toPath(), "unix:ino"); System.out.println(obj); }
Example 13
Source File: DflCache.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 14
Source File: DflCache.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 15
Source File: DflCache.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 16
Source File: DflCache.java From openjdk-jdk8u with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 17
Source File: DflCache.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 18
Source File: AbstractJimfsIntegrationTest.java From jimfs with Apache License 2.0 | 4 votes |
protected Object getFileKey(String path, LinkOption... options) throws IOException { return Files.getAttribute(path(path), "fileKey", options); }
Example 19
Source File: DflCache.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
private int loadAndCheck(Path p, AuthTimeWithHash time, KerberosTime currTime) throws IOException, KrbApErrException { int missed = 0; if (Files.isSymbolicLink(p)) { throw new IOException("Symlink not accepted"); } try { Set<PosixFilePermission> perms = Files.getPosixFilePermissions(p); if (uid != -1 && (Integer)Files.getAttribute(p, "unix:uid") != uid) { throw new IOException("Not mine"); } if (perms.contains(PosixFilePermission.GROUP_READ) || perms.contains(PosixFilePermission.GROUP_WRITE) || perms.contains(PosixFilePermission.GROUP_EXECUTE) || perms.contains(PosixFilePermission.OTHERS_READ) || perms.contains(PosixFilePermission.OTHERS_WRITE) || perms.contains(PosixFilePermission.OTHERS_EXECUTE)) { throw new IOException("Accessible by someone else"); } } catch (UnsupportedOperationException uoe) { // No POSIX permissions? Ignore it. } chan = Files.newByteChannel(p, StandardOpenOption.WRITE, StandardOpenOption.READ); long timeLimit = currTime.getSeconds() - readHeader(chan); long pos = 0; boolean seeNewButNotSame = false; while (true) { try { pos = chan.position(); AuthTime a = AuthTime.readFrom(chan); if (a instanceof AuthTimeWithHash) { if (time.equals(a)) { // Exact match, must be a replay throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } else if (time.isSameIgnoresHash(a)) { // Two different authenticators in the same second. // Remember it seeNewButNotSame = true; } } else { if (time.isSameIgnoresHash(a)) { // Two authenticators in the same second. Considered // same if we haven't seen a new style version of it if (!seeNewButNotSame) { throw new KrbApErrException(Krb5.KRB_AP_ERR_REPEAT); } } } if (a.ctime < timeLimit) { missed++; } else { missed--; } } catch (BufferUnderflowException e) { // Half-written file? chan.position(pos); break; } } return missed; }
Example 20
Source File: MZmineConfigurationImpl.java From mzmine3 with GNU General Public License v2.0 | 4 votes |
@Override public void saveConfiguration(File file) throws IOException { try { // write sensitive parameters only to the local config file final boolean skipSensitive = !file.equals(MZmineConfiguration.CONFIG_FILE); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document configuration = dBuilder.newDocument(); Element configRoot = configuration.createElement("configuration"); configuration.appendChild(configRoot); Element prefElement = configuration.createElement("preferences"); configRoot.appendChild(prefElement); preferences.setSkipSensitiveParameters(skipSensitive); preferences.saveValuesToXML(prefElement); Element lastFilesElement = configuration.createElement("lastprojects"); configRoot.appendChild(lastFilesElement); lastProjects.saveValueToXML(lastFilesElement); Element modulesElement = configuration.createElement("modules"); configRoot.appendChild(modulesElement); // traverse modules for (MZmineModule module : MZmineCore.getAllModules()) { String className = module.getClass().getName(); Element moduleElement = configuration.createElement("module"); moduleElement.setAttribute("class", className); modulesElement.appendChild(moduleElement); Element paramElement = configuration.createElement("parameters"); moduleElement.appendChild(paramElement); ParameterSet moduleParameters = getModuleParameters(module.getClass()); moduleParameters.setSkipSensitiveParameters(skipSensitive); moduleParameters.saveValuesToXML(paramElement); } // save encryption key to local config only // ATTENTION: this should to be written after all other configs final SimpleParameterSet encSet = new SimpleParameterSet(new Parameter[] {globalEncrypter}); encSet.setSkipSensitiveParameters(skipSensitive); encSet.saveValuesToXML(prefElement); TransformerFactory transfac = TransformerFactory.newInstance(); Transformer transformer = transfac.newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); // Create parent folder if it does not exist File confParent = file.getParentFile(); if ((confParent != null) && (!confParent.exists())) { confParent.mkdirs(); } // Java fails to write into hidden files on Windows, see // https://bugs.openjdk.java.net/browse/JDK-8047342 if (file.exists() && System.getProperty("os.name").toLowerCase().contains("windows")) { if ((Boolean) Files.getAttribute(file.toPath(), "dos:hidden", LinkOption.NOFOLLOW_LINKS)) { Files.setAttribute(file.toPath(), "dos:hidden", Boolean.FALSE, LinkOption.NOFOLLOW_LINKS); } } StreamResult result = new StreamResult(new FileOutputStream(file)); DOMSource source = new DOMSource(configuration); transformer.transform(source, result); // make user home config file invisible on windows if ((!skipSensitive) && (System.getProperty("os.name").toLowerCase().contains("windows"))) { Files.setAttribute(file.toPath(), "dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS); } logger.info("Saved configuration to file " + file); } catch (Exception e) { throw new IOException(e); } }