Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8164719

java.io.File renameTo always fails

XMLWordPrintable

    • generic
    • windows_10

      FULL PRODUCT VERSION :
      D:\EclipseProjects\springClasses\SpringClasses\target\classes>java -version
      java version "1.8.0_60"
      Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
      Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      D:\EclipseProjects\springClasses\SpringClasses\target\classes>ver

      Microsoft Windows [Version 10.0.10586]

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      D:\>whoami
      rsa\root

      root account is having Administrator privileges. Rebooted my laptop and logged in as root to test my small program.

      A DESCRIPTION OF THE PROBLEM :
      The program i have is to rename a file is:

      D:\EclipseProjects\springClasses\SpringClasses>cd src\main\java

      D:\EclipseProjects\springClasses\SpringClasses\src\main\java>type com\rsa\springclasses\day3\logback\TestRename.java
      package com.rsa.springclasses.day3.logback;

      import java.io.File;

      public class TestRename {
              public static void main(String[] args) {
                      File src = new File("D:/EclipseProjects/springClasses/SpringClasses/target/log/application.log");
                      boolean success = src.renameTo(new File("D:/EclipseProjects/springClasses/SpringClasses/target/log/application.2016-Aug-21_21:49:55_0.log"));
                      System.out.println(success);
              }
      }


      D:\>cd EclipseProjects\springClasses\SpringClasses\target\classes

      D:\EclipseProjects\springClasses\SpringClasses\target\classes>java com.rsa.springclasses.day3.logback.TestRename
      false

      When I tried this program in debugger,

      Entered into: File -> renameTo method
      security variable is null
      if (this.isInvalid() || dest.isInvalid()) -> false

      Entered into: WinNTFileSystem -> rename method
      cache.clear() -> done
      prefixCache.clear() -> done

      Finally called: private native boolean rename0(File f1, File f2);

      This is always returning false indicating that file name is not renamed. I double / triple checked via procmon.exe and found that no process holding applicaiton.log file. Even before running my sample program, I rebooted my laptop, logged in as root(administrator), opened cmd only. Let me know if you need any additional information.


      REPRODUCIBILITY :
      This bug can be reproduced always.

            psonal Pallavi Sonal (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: