----- Original Message ----- > From: "Pasam Soujanya1" <psouj...@in.ibm.com> > To: "core-libs-dev" <core-libs-dev@openjdk.java.net> > Sent: Monday, March 14, 2022 12:48:42 PM > Subject: Behavior change in the jar tool JDK11 vs JDK8.
> There is a significant difference in the way the JAR tool (starting JDK11) > seems > to be responding to target files that are not present , when compared to JDK8. > With JDK 8, the jar tool just reports about target files that are absent, and > creates the jar file with whatever targets are available. > > With JDK8, If I try to create a jar file with one existing file and another > invalid file name I can see achieve getting created with the file that exists. > Only the warning seems to be printed for the target that doesn't exists: > > $ jar -cvf sample.jar exists.txt does_not_exist.txt > does_not_exist.txt : no such file or directory > added manifest > adding: exists.txt(in = 0) (out= 0)(stored 0%) > > From JDK11 onward upto the latest, though I can see the same verbose output > the > jar file(sample.jar) is not created. > > Looking at the code, the targets that do exist are written to a temporary JAR > file, but the following "validation" code, which runs once the tool has > finished writing the temporary JAR file, only moves/renames the temporary file > to the specified JAR location if "ok" is true. If "ok" is false the temporary > file is simply deleted: > https://github.com/openjdk/jdk11u/blob/22186cb1fe22b4b30fc72c67ce9946cd4f03199d/src/jdk.jartool/share/classes/sun/tools/jar/Main.java#L451 > > Is this behavior change intentional? I couldn't find anything documented in > release notes of JDK 9,10,11. If not intentional, can someone help me create > bug report on OpenJDK jira? Thank you. I believe it's a bugfix, since the creation of the command "jar", jar follows the semantics of "tar", so the behavior you are seeing now is the correct one. But i was not able to pinpoint the bug corresponding to that issue. > > Regards, > Pasam Soujanya. regards, Rémi