-
Enhancement
-
Resolution: Not an Issue
-
P4
-
None
-
13, 14, 15
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
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