Uploaded image for project: 'MINA SSHD'
  1. MINA SSHD
  2. SSHD-118

uploading and then renaming a file doesn't work (on windows)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Duplicate
    • 0.5.0
    • None
    • None
    • windows xp professional sun jdk 1.5.0.22, jre 1.6
      windows 2003 server SP2 sun jdk jre 1.5.0.22

    Description

      I logon, and then
      put xx xx
      rename xx yy

      O1706@WKE198515 ~
      $ sftp -oport=2222 a@localhost
      Connecting to localhost...
      a@localhost's password:
      sftp> cd tmp
      sftp> put xx
      Uploading xx to /C:/NWDS7.1EHP1/workspace/minasshd_custom/tmp/xx
      xx 100% 1039 1.0KB/s 00:00
      sftp> rename xx yy
      Couldn't rename file "/C:/NWDS7.1EHP1/workspace/minasshd_custom/tmp/xx" to "/C:/
      NWDS7.1EHP1/workspace/minasshd_custom/tmp/yy": Failure
      sftp>

      The problem is that the file isn't closed after uploading, SftpSubSystem.process SSH_FXP_WRITE
      NativeSshFile.createOutputStream doesn't close the file, even though the close method is called.

      I can't rename the file from the os either because mina sshd holds it locked after upload. When mina sshd is shut down I can rename the file. After restarting minasshd the file can be renamed (from mina sshd or from the os).

      Here is the correction:
      class NativeSshFile
      public void truncate() throws IOException {
      // e.on modification
      // permission check
      // and close the raf
      if (!isWritable())

      { throw new IOException("No write permission : " + file.getName()); }

      RandomAccessFile raf = new RandomAccessFile(file, "rw");
      boolean bIOExcpetion = false;
      IOException ioException = null;
      if (raf != null) {
      try

      { raf.setLength(0); }

      catch (IOException e)

      { e.printStackTrace(); ioException = e; bIOExcpetion = true; }

      finally

      { if (raf != null) raf.close(); }

      }
      if (bIOExcpetion)
      throw ioException;
      }

      Attachments

        1. NativeSshFile.diff
          2 kB
          Otto Frost

        Issue Links

          Activity

            People

              Unassigned Unassigned
              otto1 Otto Frost
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 1h
                  1h
                  Remaining:
                  Remaining Estimate - 1h
                  1h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified