<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:411047358;
        mso-list-type:hybrid;
        mso-list-template-ids:1896405052 -1140558982 67567619 67567621 67567617 67567619 67567621 67567617 67567619 67567621;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Aptos",sans-serif;
        mso-fareast-font-family:Aptos;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style>
</head>
<body lang="DE" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Dear openJDK devs,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I contacted Sergey Bylokhov via LinkedIn in December because we are unable to migrate to JDK25 due to commit
<a href="https://github.com/openjdk/jdk25u/commit/477da161e62040d77079196ea27d24b27de75b64">
https://github.com/openjdk/jdk25u/commit/477da161e62040d77079196ea27d24b27de75b64</a>. In this commit, internal Swing classes were declared as final.
<o:p></o:p></p>
<p class="MsoNormal">We have (unfortunately) built derivation hierarchies of several affected classes on which our entire Swing UI is based. If we were to abandon the derivations, it would mean undesirable changes in the behavior of our GUIs. Maintaining the
 behavior would be very expensive/impossible. We are working step by step to replace our Swing UI with a modern UI, but this is likely to take longer than JDK21 support lasts.<o:p></o:p></p>
<p class="MsoNormal">Sergey Bylokhov recommended that I should send an email about ticket
<a href="https://bugs.openjdk.org/browse/JDK-8359433" title="https://bugs.openjdk.org/browse/jdk-8359433">
https://bugs.openjdk.org/browse/JDK-8359433</a> and contact this mailing list. He asked for a detailed description of which classes are being extended and why. Due to an urgent feature, the responsible devs were busy and my response took two months. I’m sorry
 for that. Here is the description:<br>
<br>
<o:p></o:p></p>
<table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none">
<tbody>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal"><b>Original class<o:p></o:p></b></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal"><b>What we‘ve changed via derivation:<o:p></o:p></b></p>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsButtonUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">veto listener for mouse clicks<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsCheckBoxUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel for read-only<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">drawing CellHint-function<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1"><o:p> </o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsComboBoxUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel for read-only<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">read-only function<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">change keyboard behavior<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">small other changes in look & feel<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsRadioButtonUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsTextAreaUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel for read-only<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsLabelUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsTreeUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">changing DefaultCellRenderer<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel for read-only function<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">drawing lines, adapting width in tables, background color<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">ToolBarBorder<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsSliderUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">changing slider’s behaviour<o:p></o:p></li></ul>
</td>
</tr>
<tr>
<td width="302" valign="top" style="width:226.55pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
<p class="MsoNormal">WindowsTabbedPaneUI<o:p></o:p></p>
</td>
<td width="302" valign="top" style="width:226.55pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<ul style="margin-top:0cm" type="disc">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">look & feel<o:p></o:p></li></ul>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I hope, this helps. When we implemented this years ago, we obviously should have found a better solution than overwriting internal classes. On the other hand, it may not be very important to you that overwriting internal classes has now
 been prohibited for legacy Swing UI.<o:p></o:p></p>
<p class="MsoNormal">We would be very grateful to you if you could undo the commit or parts of it so that we can continue to use the overwrites with JDK25 or higher. If this is not possible, we are also interested in other solution ideas. Otherwise, we will
 unfortunately have to go to the trouble of replacing this historical code at some point.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best regards,<o:p></o:p></p>
<p class="MsoNormal">Aron from Cologne, Germany, working for parcIT <o:p></o:p></p>
<div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0cm 0cm 1.0pt 0cm">
<p class="MsoNormal" style="border:none;padding:0cm"><o:p> </o:p></p>
<p class="MsoNormal" style="border:none;padding:0cm"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Aron Rahman<o:p></o:p></p>
<p class="MsoNormal">Team Lead Software Development<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><a href="mailto:aron.rahman@parcIT.de">aron.rahman@parcIT.de</a><o:p></o:p></p>
<p class="MsoNormal">Tel.: +49 221 584 75 156<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">parcIT GmbH<br>
Erftstraße 15<br>
50672 Köln<br>
<br>
Sitz der Gesellschaft: Köln <br>
AG Köln HRB 67455<br>
Geschäftsführer: Thomas Jagodzinsky, Patrick Yousefian<br>
<a href="http://www.parcit.de/">www.parcIT.de</a><o:p></o:p></p>
</div>
</body>
</html>