PM64410: JAVA UNIXPROCESS CODE DOES NOT PROPERLY TRANSLATE MESSAGES TO UTF-8 CAUSING A CRASH
Closed as program error.
In certain error situations, the JVM does not properly convert messages to UTF-8 prior to throwing an exception, which causes a crash. The crash specifically happens when launching a new process using java/lang/Runtime.exec The stack trace looks something like this: 1 _TDUMP +000000C2 *PATHNAM 2 j9dump_create +00000418 *PATHNAM 3 doSystemDump+0000034A *PATHNAM 4 protectedDumpFunction +0000002C *PATHNAM 5 j9sig_protect +0000071A *PATHNAM 6 runDumpAgent+00000356 *PATHNAM 7 triggerDumpAgents +000004AC *PATHNAM 8 fatalExit +0000008E *PATHNAM 9 Z_COMPRESSUTF8 +00000166 *PATHNAM 10 compressUTF8+00000026 *PATHNAM 11 Z_FINDCLASS +0000021E *PATHNAM 12 findClass +00000014 *PATHNAM 13 gpCheckFindClass +0000001E *PATHNAM 14 JNU_NewObjectByName +00000066 *PATHNAM 15 Java_java_lang_UNIXProcess_forkAndExec +00000516 *PATHNAM KEYWORDS ABEND0C4 forkAndExec
The crash happened while application invoke Runtime.exec() as the corresponding native library code did not encode the class file name in UTF-8 format for throwing an IOException. In zOS, it was encoded in the platform default encoding (IBM-1047) as the class name string literals were not explicitly encoded to UTF-8. Another symptom of this issue is to throw IOException with unreadable message. The error messages of java.io.IOException were not displayed properly as the error messages are expected to be in the UTF-8 format by the error processing routine and it was provided in the zOS default encoding which is EBCDIC (IBM-1047).
This defect will be fixed in: 6.0.0 SR11 6.0.1 SR3 7.0.0 SR5 . The class name literals and the error messages are encoded in UTF-8 format before providing to the appropriate native functions.
Reported component name
JAVA Z/OS 64
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
JAVA Z/OS 64
Fixed component ID
Applicable component levels