A DESCRIPTION OF THE PROBLEM :
The rationale for removing native2ascii was: properties now do support UTF-8 and nobody used it anyway.
First part is correct, second is not.
Problems:
1. Use JDK9 + to compile project for JRE8 and earlier. The javac allows to create backwards compatible code and can create class files compatible with older JRE. The missing native2ascii tool however DOES NOT ALLOW to perform necessary conversion for properties files, thous such project cannot be build.
2.The description of new loading process in JDK java.util.Properties is in REVERSE. The escapes used earlier ARE UTF-8 compatible, but UTF-8 upper characters are not within ISO set so if ISO processing fail one can go to UTF-8 but not vice versa. The implementation is however correct and old programs are running fine in new JRE.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Load unconverted UTF-8 properties in pre-9 JRE.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
native2ascii should be restored for downwards compatibility. May be not maintained, it just should be there and work as it did work.
ACTUAL -
I is impossible to build downwards compatible projects with JDK9+. Simply skipping conversion results in faults.
---------- BEGIN SOURCE ----------
None.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Keep two JDK in system, providing old versions can be still downloaded. This however does not allow to use JDK9 functionality which is not present in previous versions but is not related to language enhancements.
FREQUENCY : always