Author: svn-role
Date: Tue May 19 04:00:13 2026
New Revision: 1934373
Log:
Merge the r1930973 group from trunk:
* r1930973, r1934367
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.
Justification:
Allow JavaHL test to succeed on Windows since Java 25
Votes:
+0: hartmannathan (without r1934367; cannot test; Windows testers needed
please)
+0: jcorvel (can't test atm, but LGTM)
+1: jun66j5
Modified:
subversion/branches/1.15.x/ (props changed)
subversion/branches/1.15.x/STATUS
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
Modified: subversion/branches/1.15.x/STATUS
==============================================================================
--- subversion/branches/1.15.x/STATUS Tue May 19 02:38:51 2026
(r1934372)
+++ subversion/branches/1.15.x/STATUS Tue May 19 04:00:13 2026
(r1934373)
@@ -52,16 +52,6 @@ Veto-blocked changes:
Approved changes:
=================
- * r1930973, r1934367
- 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.
- Justification:
- Allow JavaHL test to succeed on Windows since Java 25
- Votes:
- +0: hartmannathan (without r1934367; cannot test; Windows testers needed
please)
- +0: jcorvel (can't test atm, but LGTM)
- +1: jun66j5
-
* r1932863, r1933181
Update some readme files
Justification:
@@ -90,8 +80,7 @@ Approved changes:
Silence all deprecation warnings from the org.tigris JavaHL package.
Justification:
Unnecessary warnings hide actual problems.
- Depends:
- r1933796
+ Depends:
Votes:
+1: brane, dsahlberg, jcorvel
@@ -100,13 +89,12 @@ Approved changes:
Justification:
Provides fine-grained control of access to restricted methods. The
alternative requires granting access to all "unnamed" modules.
+ Depends:
Notes:
Although this change does not affect backwards compatibility of JavaHL,
it is my opinion that it really should go into a minor release. So we
should either backport to 1.15.0 or wait for 1.16.0.
Tested with JDK 1.8, JDK 11 and JDK 25 on ARM64 macOS.
- Depends:
- r1933877, r1933796
Votes:
+1: brane, dsahlberg, jcorvel
Modified:
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
==============================================================================
---
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
Tue May 19 02:38:51 2026 (r1934372)
+++
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
Tue May 19 04:00:13 2026 (r1934373)
@@ -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/branches/1.15.x/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
==============================================================================
---
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
Tue May 19 02:38:51 2026 (r1934372)
+++
subversion/branches/1.15.x/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
Tue May 19 04:00:13 2026 (r1934373)
@@ -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();
}