Skip to content

List of Java Kata to Update

Madjosz edited this page Dec 6, 2023 · 19 revisions

The following kata failed to update to Java 17 automatically.

If the kata uses /home/codewarrior/solution.txt, replace with /workspace/solution.txt, and fix any incompatibility.

  1. Coffee machine fixed
  2. Find nth Digit In a Infinite Addition Result fixed
  3. FIXME: Static electrickery fixed
  4. Generator Functions
  5. Java Hacking: Hijack a JVM
  6. My friend time fixed, Fiji stopped observing DST
  7. Numberless Number Representation fixed
  8. One-Semicolon Array Reversal fixed
  9. One-Semicolon Cartesian Product fixed
  10. One-Semicolon Fibonacci Stream fixed
  11. One-Semicolon Matrix Multiplication fixed
  12. One-Semicolon Vector Dot Product fixed
  13. Psychic
  14. Regular Expression for Binary Numbers Divisible by n fixed
  15. Square sums
  16. The Prediction
  17. Thread Bomb
  18. Triangle area fixed
  19. Using Java libraries #1: Food to JSON and back

Unfixable

CVEs

  1. Are Module Boundaries also Security Boundaries? intended solution exploits a CVE which is fixed in JDK 17
  2. Exploit indirection to escalate permissions. intended solution exploits a CVE (Issue 57 and 58) which is fixed in JDK 17

JEP 403 blocks reflective access to JDK internals since JDK 16/17

  1. Bagels
  2. Class Loader Bomb
  3. Where's the field? retired

The following was using /home/codewarrior/solution.txt which no longer exists in Java 17 environment, but passed the tests. Double check these because the test case might be invalid. Try changing the solution path back to /home/codewariror/solution.txt and see if the test fails.

  1. calculate a ^ b % m retired
  2. Calculator for expressions with fractions

A note on reflection

Since Java 9 new security features are added to prevent cross-module reflection access. Typical katas that revolves around reflection usage will cause an unsuppressible warning to be issued:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by $PERPETRATOR (file:/home/codewarrior/java/classes/) to $VICTIM
WARNING: Please consider reporting this to the maintainers of $PERPETRATOR
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Lombok is no longer supported and these are planned to be retired when we deprecate Java 8.

  1. Lombok Builder.
  2. Lombok Encapsulation
Clone this wiki locally