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

javac fails to detect changes to a dependency if its parent is unchanged

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 13, 14, 15
    • tools

      ADDITIONAL SYSTEM INFORMATION :
      macOS 10.15.2
      openjdk version "13.0.2" 2020-01-14

      A DESCRIPTION OF THE PROBLEM :
      When a dependency is modified javac fails to detect the change if the class referencing the dependency is itself unchanged resulting in an

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Folder1 containing Driver.java and Folder2
      Folder2: A.java, B.java, C.java

      Driver creates an instance of A that depends on B, B depends on C.
      Initial compilation from Folder1 with javac *.java works as expected.
      Modify the file C.java and re-execute javac *.java

      The change to C.java is undetected and compilation of your program appears the same as the first version.


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      I expected the modification to C.java to be detected based on the change in timestamps. If you delete C.class javac fails to detect that it is missing too. Obviously the program fails to run with the missing class.
      ACTUAL -
      javac only recompiles Driver.java and halts after the first reference is found

      CUSTOMER SUBMITTED WORKAROUND :
      Navigate to the nested folder and execute javac *.java to manually trigger a compilation

      FREQUENCY : always


            asotona Adam Sotona
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: