Author: jun66j5
Date: Tue Dec 30 01:13:29 2025
New Revision: 1930973
Log:
Fix test failures of JavaHL with Java 25 on Windows due to that deleting a
file with readonly flag on Windows fails since Java 25.
https://bugs.openjdk.org/browse/JDK-8355954
* subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
(createDirectories):
Add `throws IOException`.
(removeDirOrFile):
Unset readonly flag of the file before deleting the file and add
`throws IOException`.
* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
(createDirectories, removeDirOrFile): Ditto.
Modified:
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
Modified: subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Mon Dec 29 19:39:34 2025 (r1930972)
+++ subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Tue Dec 30 01:13:29 2025 (r1930973)
@@ -31,6 +31,10 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
+import java.nio.file.FileStore;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.DosFileAttributeView;
import java.util.Set;
import java.util.HashSet;
import java.util.HashMap;
@@ -287,7 +291,7 @@ class SVNTests extends TestCase
* Create a directory for the sample (Greek) repository, config
* files, repositories and working copies.
*/
- private void createDirectories()
+ private void createDirectories() throws IOException
{
this.rootDir.mkdirs();
@@ -495,7 +499,7 @@ class SVNTests extends TestCase
*
* @param path The file or directory to be removed.
*/
- static final void removeDirOrFile(File path)
+ static final void removeDirOrFile(File path) throws IOException
{
if (!path.exists())
{
@@ -511,6 +515,18 @@ class SVNTests extends TestCase
}
}
+ // Unset readonly flag of the file because deleting a file with
+ // readonly flag on Windows fails since Java 25.
+ Path nioPath = path.toPath();
+ FileStore store = Files.getFileStore(nioPath);
+ if (store.supportsFileAttributeView(DosFileAttributeView.class)) {
+ DosFileAttributeView view = Files.getFileAttributeView(
+ nioPath, DosFileAttributeView.class);
+ if (view != null) {
+ view.setReadOnly(false);;
+ }
+ }
+
path.delete();
}
Modified: subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java Mon Dec 29 19:39:34 2025 (r1930972)
+++ subversion/trunk/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java Tue Dec 30 01:13:29 2025 (r1930973)
@@ -26,6 +26,10 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.nio.file.FileStore;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.DosFileAttributeView;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -245,7 +249,7 @@ class SVNTests extends TestCase
* Create a directory for the sample (Greek) repository, config
* files, repositories and working copies.
*/
- private void createDirectories()
+ private void createDirectories() throws IOException
{
this.rootDir.mkdirs();
@@ -381,7 +385,7 @@ class SVNTests extends TestCase
*
* @param path The file or directory to be removed.
*/
- static final void removeDirOrFile(File path)
+ static final void removeDirOrFile(File path) throws IOException
{
if (!path.exists())
{
@@ -398,6 +402,18 @@ class SVNTests extends TestCase
}
}
+ // Unset readonly flag of the file because deleting a file with
+ // readonly flag on Windows fails since Java 25.
+ Path nioPath = path.toPath();
+ FileStore store = Files.getFileStore(nioPath);
+ if (store.supportsFileAttributeView(DosFileAttributeView.class)) {
+ DosFileAttributeView view = Files.getFileAttributeView(
+ nioPath, DosFileAttributeView.class);
+ if (view != null) {
+ view.setReadOnly(false);;
+ }
+ }
+
path.delete();
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.