I always get an error when saving new files: java.nio.file.NoSuchFileException with the save path, even if the parent folder exist.
java 17.0.16+8 or 24.0.2 on ArchLinux.
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: java.nio.file.NoSuchFileException: /home/elelay/Documents/HOWTO_upgrade.md
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/sun.nio.fs.AbstractFileSystemProvider.delete(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/java.nio.file.Files.delete(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at org.gjt.sp.jedit.io.FileVFS._rename(FileVFS.java:578)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at org.gjt.sp.jedit.bufferio.BufferSaveRequest._run(BufferSaveRequest.java:100)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at org.gjt.sp.util.Task.run(Task.java:65)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
18:41:08 [jEdit Worker #3] [error] BufferSaveRequest: at java.base/java.lang.Thread.run(Unknown Source)
18:41:08 [AWT-EventQueue-0] [error] ErrorListDialog$ErrorEntry: /home/elelay/Documents/HOWTO_upgrade.md:
18:41:08 [AWT-EventQueue-0] [error] ErrorListDialog$ErrorEntry: Enregistrement impossible de java.nio.file.NoSuchFileException: /home/elelay/Documents/HOWTO_upgrade.md
With "2 stage save" active and "backup on each save" active. 1 backup, tilde suffix.
Also with -noserver -nosettings: ie a fresh install
jEdit compiled from current master= 01c732d64823f7e70e5bcc3fcb3f7ea6b7207bb8
@vampire0 this is a regression introduced in e73d8bfd46e7d0dba2371c1bad82a89a7aa12ba9
"Properly handle problems during file renaming in file VFS"
This is because
File.delete()doesn't throw an exception when the file doesn't exist, whileFiles.delete(path)does.I guess this is the reason why you chose to use
Files.delete, given the commit message, but the issue is that you didn't add code to handle theNoSuchFileException. Please revert or fix the code.Adding a debug message, here is an example of the problem:
fromCanonPath == "/tmp/#xxxxxe#save#"andtoCanonPath == "/tmp/xxxxxe"Last edit: Eric Le Lay 2025-08-03
Hey there, sorry. I already had the proper fix for this locally, just didn't push yet because it was after some other commits that wait for the release of another project. I reordered the commits now and pushed that fix. Renaming and thus also 2-stage-save should work properly again now in current
master.