Findings from a code scan on 2026-10-04.
src/JEnable.java:997- every error path inmain(:1047bad token list,:1058missing token list,:1084unknown option,:1101token both enabled and disabled) justreturns, so the JVM exits 0 and scripts cannot detect failure;processFilefailures (:714) are likewise only printed. Exit withSystem.exit(1)on usage errors and return a non-zero status when any file failed.src/JEnable.java:563- theBufferedReaderopened here is closed only on the success branches (:601,:694): a.javxfile that stays disabled (toextandextbothjavx) never closes it, and any exception skipsin.close()/out.close()and the backup streams at:628. Use try-with-resources forin,out,isandos.src/JEnable.java:1022--bwith a path that is not a directory prints an error but keeps going with that path as the backup directory; abort instead.README.md:14- saysscripts/javac_build.py"builds the classes and the jar", butscripts/javac_build.py:21only runsjavacintobin/; nothing usesmanifestto build a jar. Either add thejar cfmstep (themanifestfile is ready for it) or fix the README and deletemanifest.rsconstruct.toml:9- ruff and mypy (:13) listsrc, which holds only Java; usesrc_dirs = ["scripts"].
src/JEnable.java:1152- the usage text says version 0.8 while the class javadoc (:60) anddoc/Changelogsay 0.9.src/JEnable.java:572-Hashtable.contains()tests values, not keys; it works only because each token is stored as its own value. UsecontainsKey()(or switch the token tables at:157/:160toHashSet<String>;Vectorat:951/:1008toArrayList).src/JEnable.java:1011-argv[anum].charAt(0)throwsStringIndexOutOfBoundsExceptionon an empty-string argument; checkisEmpty()first.doc/TODO.txt:3- stale: LICENSE and README.md exist, "move build system to ant" and "upload to ibiblio" no longer apply (the build is rsconstruct). Prune it down to what is still open (tests).