Menu

#4146 Unable to save new files with current master

severe bug
closed-fixed
None
9
2025-08-14
2025-08-03
Eric Le Lay
No

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

Discussion

  • Eric Le Lay

    Eric Le Lay - 2025-08-03

    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

     
  • Eric Le Lay

    Eric Le Lay - 2025-08-03

    @vampire0 this is a regression introduced in e73d8bfd46e7d0dba2371c1bad82a89a7aa12ba9
    "Properly handle problems during file renaming in file VFS"

     
  • Eric Le Lay

    Eric Le Lay - 2025-08-03

    This is because File.delete() doesn't throw an exception when the file doesn't exist, while Files.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 the NoSuchFileException. Please revert or fix the code.

    Adding a debug message, here is an example of the problem: fromCanonPath == "/tmp/#xxxxxe#save#" and toCanonPath == "/tmp/xxxxxe"

     

    Last edit: Eric Le Lay 2025-08-03
  • Björn Kautler

    Björn Kautler - 2025-08-14
    • status: open --> closed-fixed
    • assigned_to: Björn Kautler
    • Priority: 5 --> 9
     
  • Björn Kautler

    Björn Kautler - 2025-08-14

    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.

     

Log in to post a comment.