<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin:0;">Dear Authors of JLS 21:</div><div style="margin:0;">    I've found two uncertain technical errors and omissions of 《The Java® Language Specification Java SE 21 Edition》,as follows:</div><div style="margin:0;">(1)uncertain omission</div><div style="margin:0;">      The "<b>Chapter 19</b>.<b> Syntax</b>" says: "This chapter repeats the syntactic grammar given in Chapters 4, 6-10, 14, and 15, as well as key parts of the lexical grammar from Chapter 3, using the notation from §2.4."  I checked over all the repeated productions after Chapter 3, and found that the "<span style="font-size: 11pt; font-family: Times-Bold; color: rgb(0, 0, 0); font-weight: bold; --darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color="">Productions from §14 (</span><span style="font-size: 11pt; font-family: Times-BoldItalic; color: rgb(0, 0, 0); font-weight: bold; font-style: italic; --darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color="">Blocks, Statements, and Patterns</span><span style="font-size: 11pt; font-family: Times-Bold; color: rgb(0, 0, 0); font-weight: bold; --darkreader-inline-color: #e8e6e3;" data-darkreader-inline-color="">)</span>"<b> lacked the definition of production "VariableAccess"</b>, which is:</div><div style="margin:0;">    VariableAccess:</div><div style="margin:0;">        ExpressionName</div><div style="margin:0;">        FieldAccess</div><div style="margin:0;">I think this may be an omission, because all other productions after Chapter 3 are present.</div><div>(2)uncertain error comment</div><div><div>Sited from the two possible <span style="font-family: Times-Roman; font-size: 9pt;">execution </span>order "Example 17.4.5-1" in Chapter 17:</div></div><div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">1: B = 1;
</span></div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">3: A = 2;
</span></div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">2: r2 = A; // sees initial write of 0
</span></div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">4: r1 = B; // sees initial write of 0</span></div><div>and</div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">1: r2 = A; // sees write of A = 2
</span></div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">3: r1 = B; // sees write of B = 1
</span></div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">2: B = 1;
</span></div><div><span style="mso-spacerun:'yes';font-size:8pt;font-family:Courier;color:rgb(0,0,0);">4: A = 2;</span></div><div>I think there should be a swap between the above comments,is it right?</div><font color="#515151" face="PingFangSC-Regular"><span style="font-size: 16px;">Yours sincerely,</span></font></div><div><font color="#515151" face="PingFangSC-Regular"><span style="font-size: 16px;">Jim DG,a Chinese Java Programmer since 2008.</span></font></div></div>