<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Garamond,Georgia,serif;" dir="ltr">
<p>Hi all,</p>
<p><br>
</p>
<p>I have been using diffoscope to diff between Java classfiles. However, it seems to be unsupported for JDK >= 21 because procyon fails to decompile the code. As a fallback, diffoscope then shows the diff between hexdumps.</p>
<p>With JDK 17, diffoscope either shows the diff between the disassembled output or decompiled output (side question, how does it decide between the two?).</p>
<p><br>
</p>
<p>Details to reproduce the issue.</p>
<p><br>
</p>
<p>```</p>
<p><span style="font-family: "Lucida Console", Monaco, monospace;">java --version</span></p>
<p><span style="font-family: "Lucida Console", Monaco, monospace;">>>> </span><span style="font-family: "Lucida Console", Monaco, monospace;">openjdk 21.0.2</span><br>
</p>
<p><br>
</p>
<p><span style="font-family: "Lucida Console", Monaco, monospace;">diffoscope --version</span></p>
<p></p>
<div><span style="font-family: "Lucida Console", Monaco, monospace;">>>> </span><span style="font-family: "Lucida Console", Monaco, monospace;">diffoscope 272</span></div>
<div><br>
</div>
<div>
<div><span style="font-family: "Lucida Console", Monaco, monospace;">diffoscope A45305b1a-3bdc-455f-b22d-96636743c129.class A4e6577e8-d1ee-4acd-b38f-1dcd68658a48.class</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">>>> </span>
<div><span style="font-family: "Lucida Console", Monaco, monospace;">--- A45305b1a-3bdc-455f-b22d-96636743c129.class</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+++ A4e6577e8-d1ee-4acd-b38f-1dcd68658a48.class</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">©¦©¨ Command `'procyon -ec {}'` failed with exit code 1. Standard output:</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">©¦©¨     Exception in thread "main" java.lang.reflect.GenericSignatureFormatError</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">©¦©¨      at com.strobel.assembler.metadata.signatures.SignatureParser.error(SignatureParser.java:70)</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">©¦©¨      at com.strobel.assembler.metadata.signatures.Signatur  [...]</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">@@ -1,22 +1,22 @@</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000000: cafe babe 0000 0037 000e 0100 6069 6f2f  .......7....`io/</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000010: 6472 6f70 7769 7a61 7264 2f6a 6572 7365  dropwizard/jerse</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000020: 792f 4472 6f70 7769 7a61 7264 5265 736f  y/DropwizardReso</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000030: 7572 6365 436f 6e66 6967 2453 7065 6369  urceConfig$Speci</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-00000040: 6669 6342 696e 6465 7265 3735 6461 3661  ficBindere75da6a</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-00000050: 632d 3332 3031 2d34 3037 332d 6264 3466  c-3201-4073-bd4f</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-00000060: 2d37 3536 3832 6337 3631 3836 3207 0001  -75682c761862...</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+00000040: 6669 6342 696e 6465 7231 6437 3137 3235  ficBinder1d71725</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+00000050: 382d 6132 3334 2d34 3332 322d 6161 3866  8-a234-4322-aa8f</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+00000060: 2d31 3637 6163 3434 3534 3434 3307 0001  -167ac4454443...</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000070: 0100 106a 6176 612f 6c61 6e67 2f4f 626a  ...java/lang/Obj</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000080: 6563 7407 0003 0100 0a53 6f75 7263 6546  ect......SourceF</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000090: 696c 6501 0050 4472 6f70 7769 7a61 7264  ile..PDropwizard</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 000000a0: 5265 736f 7572 6365 436f 6e66 6967 2453  ResourceConfig$S</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-000000b0: 7065 6369 6669 6342 696e 6465 7265 3735  pecificBindere75</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-000000c0: 6461 3661 632d 3332 3031 2d34 3037 332d  da6ac-3201-4073-</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-000000d0: 6264 3466 2d37 3536 3832 6337 3631 3836  bd4f-75682c76186</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">-000000e0: 322e 6a61 7661 0100 3c69 6f2f 6472 6f70  2.java..<io/drop</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+000000b0: 7065 6369 6669 6342 696e 6465 7231 6437  pecificBinder1d7</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+000000c0: 3137 3235 382d 6132 3334 2d34 3332 322d  17258-a234-4322-</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+000000d0: 6161 3866 2d31 3637 6163 3434 3534 3434  aa8f-167ac445444</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;">+000000e0: 332e 6a61 7661 0100 3c69 6f2f 6472 6f70  3.java..<io/drop</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 000000f0: 7769 7a61 7264 2f6a 6572 7365 792f 4472  wizard/jersey/Dr</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000100: 6f70 7769 7a61 7264 5265 736f 7572 6365  opwizardResource</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000110: 436f 6e66 6967 2453 7065 6369 6669 6342  Config$SpecificB</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000120: 696e 6465 7207 0007 0100 063c 696e 6974  inder......<init</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000130: 3e01 0026 284c 6a61 7661 2f6c 616e 672f  >..&(Ljava/lang/</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000140: 4f62 6a65 6374 3b4c 6a61 7661 2f6c 616e  Object;Ljava/lan</span><br>
<span style="font-family: "Lucida Console", Monaco, monospace;"> 00000150: 672f 436c 6173 733b 2956 0c00 0900 0a0a  g/Class;)V......</span></div>
</div>
<br>
</div>
<p></p>
<p>```</p>
<p><br>
</p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, "EmojiFont", "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div id="m_4935352394101912768Signature">
<div name="divtagdefaultwrapper"><font size="2" color="#808080"><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)"><span id="divtagdefaultwrapper" style="font-size:12pt">
<div style="margin-top:0; margin-bottom:0"><span style="color:rgb(0,0,0); font-family:Garamond,Georgia,serif">Regards,</span></div>
<span style="font-family:Garamond,Georgia,serif"></span><span style="font-family:Garamond,Georgia,serif"></span><span style="color:rgb(0,0,0)"></span><span style="font-family:Garamond,Georgia,serif"></span><span style="font-family:Garamond,Georgia,serif"></span>
<div style="margin-top:0; margin-bottom:0"><span style="color:rgb(0,0,0); font-family:Garamond,Georgia,serif">Aman Sharma</span></div>
</span><br>
</span></font></div>
<div name="divtagdefaultwrapper"><font size="2" color="#808080"><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)"></span><span class="im">PhD Student<br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
<span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)">KTH Royal Institute of Technology</span><br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
</span><span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)">School of Electrical Engineering and Computer Science (EECS)</span><br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
<span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)">Department of Theoretical Computer Science (TCS)</span><br style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif">
<span style="font-family:Arial,"Helvetica Neue",helvetica,sans-serif; background-color:rgb(255,255,255)"><a href="http://www.kth.se" target="_blank" id="LPNoLP"></a><a href="https://www.kth.se/profile/amansha" class="OWAAutoLink" id="LPNoLP"></a><a href="https://www.kth.se/profile/amansha" class="OWAAutoLink" id="LPNoLP"></a></span></font></div>
</div>
<a href="https://www.kth.se/profile/amansha" class="OWAAutoLink" id="LPNoLP"><span style="font-size:10pt"></span></a><a href="https://algomaster99.github.io/" class="OWAAutoLink" id="LPNoLP">https://algomaster99.github.io/</a><br>
</div>
</div>
</div>
</body>
</html>