<div dir="ltr"><div dir="ltr">Following up on the discussion below with some more concrete data...<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 15, 2022 at 11:00 AM Archie Cobbs <<a href="mailto:archie.cobbs@gmail.com" target="_blank">archie.cobbs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Wed, Nov 9, 2022 at 12:06 PM Archie Cobbs <<a href="mailto:archie.cobbs@gmail.com" target="_blank">archie.cobbs@gmail.com</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I'll try to come up with a concrete but simple starting point.</div></blockquote><div><br></div><div>It's taken me a little while, but I finally have a prototype for 'this' escape warnings ready to play with.</div></div></div></blockquote><div><br></div>Here are some more precise stats on what happens when you enable the 'this' escape warning for the openjdk build.</div><div class="gmail_quote"><br></div><div class="gmail_quote">The table below shows the number of new 'this' escape warnings generated, and the total number of Java files, in each module:<br></div><div class="gmail_quote"><br></div><div class="gmail_quote" style="margin-left:40px"><span style="font-family:monospace">#WARNINGS #FILES MODULE<br>161 3168 java.base<br>0 127 java.compiler<br>0 18 java.datatransfer<br>62 1848 java.xml<br>0 18 java.prefs<br>160 2740 java.desktop<br>0 10 java.instrument<br>0 35 java.logging<br>25 330 java.management<br>0 30 java.security.sasl<br>14 106 java.rmi<br>5 199 java.naming<br>0 16 java.management.rmi<br>21 142 java.net.http<br>0 15 java.scripting<br>0 5 java.transaction.xa<br>0 212 java.security.jgss<br>0 271 java.xml.crypto<br>0 77 java.sql<br>7 56 java.sql.rowset<br>0 1 <a href="http://java.se" target="_blank">java.se</a><br>0 22 java.smartcardio<br>3 18 jdk.accessibility<br>0 60 jdk.internal.jvmstat<br>0 15 jdk.attach<br>0 147 jdk.charsets<br>2 14 jdk.zipfs<br>55 355 jdk.compiler<br>0 35 <a href="http://jdk.crypto.ec" target="_blank">jdk.crypto.ec</a><br>0 76 jdk.crypto.cryptoki<br>4 68 jdk.dynalink<br>0 3 jdk.internal.ed<br>0 3 jdk.editpad<br>19 940 jdk.hotspot.agent<br>7 59 jdk.httpserver<br>0 5 jdk.incubator.concurrent<br>0 50 jdk.incubator.vector<br>3 104 jdk.internal.le<br>0 52 jdk.internal.opt<br>11 209 <a href="http://jdk.internal.vm.ci" target="_blank">jdk.internal.vm.ci</a><br>0 1 jdk.internal.vm.compiler<br>0 1 jdk.internal.vm.compiler.management<br>0 30 jdk.jartool<br>5 245 jdk.javadoc<br>0 40 jdk.jcmd<br>0 24 jdk.management<br>0 30 jdk.management.agent<br>30 64 jdk.jconsole<br>10 139 jdk.jdeps<br>0 1 jdk.jdwp.agent<br>24 254 jdk.jdi<br>0 263 jdk.jfr<br>0 89 jdk.jlink<br>0 56 jdk.jpackage<br>6 97 jdk.jshell<br>0 4 jdk.jsobject<br>3 11 jdk.jstatd<br>0 1873 jdk.localedata<br>0 15 jdk.management.jfr<br>0 16 jdk.naming.dns<br>0 8 jdk.naming.rmi<br>0 9 <a href="http://jdk.net" target="_blank">jdk.net</a><br>0 2 jdk.nio.mapmode<br>0 11 jdk.random<br>0 26 jdk.sctp<br>0 30 jdk.security.auth<br>0 16 jdk.security.jgss<br>0 9 jdk.unsupported<br>0 8 jdk.unsupported.desktop<br>0 94 jdk.xml.dom</span></div><div class="gmail_quote"><br></div><div class="gmail_quote">So fortunately it looks feasible to address these with @SuppressWarnings("this-escape") annotations.</div><div class="gmail_quote"><br><div>Adding them is probably a good thing in its own right,
because they would serve as new "Heads up for possible 'this' escape"
markers in the code where there were none before, especially because this gotcha can be pretty hard to spot.<font color="#888888"><br></font></div></div><div><br></div><div>I'll work on refining the 'this' escape patch to use @SuppressWarnings instead of build flags, and then update this thread when that's done.<br></div><div><br></div><div>-Archie<br></div><div><br></div>-- <br><div dir="ltr">Archie L. Cobbs<br></div></div>