After applying the latest IBM RSU2512 the ESPREST Started task began failing immediately at startup. No changes were made to the ESPREST PROC or STDENV; the only change was the new Java 17 level delivered with this RSU.
ESPREST is coded to use Java 17, and it previously ran without issues on the old Java level. After the RSU2512, the task abended with the following error:
JVMJZBL1064E One or more statement in DD:STDENV in-stream does not have closing quotation, return code=103
Component: ESP Workload Automation ESP RESTAPI
Release: All Releases
In java version 17.0.16.0 (release notes for java 17.0.16.0) IBM introduced new feature for detecting unmatched quotations marks in //STDENV DD statement, but this check doesn't work correctly with escaped quotations which we are using for java init params selection.
As you can see, this line is in CYBWS007 3 times for different java versions so the number of quotations marks is odd.
if echo "$java_version_output" | grep -q "version \"1.8"; then
initJ8
elif echo "$java_version_output" | grep -q "version \"11"; then
initJ11
elif echo "$java_version_output" | grep -q "version \"17"; then
initJ17
As a workaround you can add new line ( echo "This line was added to fix unmatched quotations (\")" ) to else branch in CYBWS007 to balance the quotation marks, as you can see in the example below.
if echo "$java_version_output" | grep -q "version \"1.8"; then
initJ8
elif echo "$java_version_output" | grep -q "version \"11"; then
initJ11
elif echo "$java_version_output" | grep -q "version \"17"; then
initJ17
else
echo "This line was added to fix unmatched quotations (\")"
echo "ERROR: Unknown java version."
exit 120
Our finding is this error in JZOS batch launcher, should be fixed from IBM side.