title: Probable bug in java compiler for openjdk8, how to report and get it fixed?
body: <p>I've prepared docker image that demonstrate the problem:</p>
  
  <p><a href="https://drive.google.com/uc?id=1i04_dVL0Rp5rxXCMuHaS4LYREkZjAAW1&amp;export=download" rel="nofollow noreferrer">https://drive.google.com/uc?id=1i04_dVL0Rp5rxXCMuHaS4LYREkZjAAW1&amp;export=download</a></p>
  
  <p>This image is basically <code>alpine:3.11</code> + <code>apk add openjdk8 maven</code> + <code>my maven project containing sample minimal java class that shows problem</code></p>
  
  <p>Which you can try with following commands:</p>
  
  <pre><code># docker load -i bugexample.img
  # docker run -w /root/bug-example --name bugtest bugexample /bin/ash build-until-sha-different.sh
  </code></pre>
  
  <p>If you are lucky enough (sometimes require several attempts) you will get following output:</p>
  
  <pre><code>Found! Sha1 of two subsequent otherwise identical builds are different!
  --- 1.sha1
  +++ 2.sha1
  @@ -1,3 +1,3 @@
   d8d46555c93da579adefc629f1764965a5493edb  com/SimpleBug$1.class
   75007242aab1e1877d24124d432cb246a79476a8  com/SimpleBug$SimpleBugBuilder.class
  -23e8d0ea909b95a7955e0ec0adb4d12ae2193dd1  com/SimpleBug.class
  +6a303d69d3f382b23ca04caee4102ee1cd7151e3  com/SimpleBug.class
  </code></pre>
  
  <p>The core issue with this build is that it produce different bytecode almost each time it get build even though nothing else (neither environment, nor code itself) had changed.</p>
  
  <p>When I do compare these different class files I see that they differ in one single byte:</p>
  
  <pre><code># cmp -lb 1_SimpleBug.class 2_SimpleBug.class
  4053  66 6     65 5
  </code></pre>
  
  <p>Digging deeper into class file structure I've found that this difference come from stackmapframe constant pool pointers (StackMapTable attribute -> stack_map_frame entry with tag Object_variable_info -> cpool_index)</p>
  
  <pre><code>1_SimpleBug.class
     #35 = Utf8               supSetStringParameter10
     #36 = Utf8               Lcom/google/common/base/Supplier;
  
  2_SimpleBug.class
     #35 = Utf8               supSetStringParameter10
     #36 = Utf8               Lcom/google/common/base/Supplier;
  </code></pre>
  
  <p>So one file points to #35 and another to #36. I don't think this is correct behavior.</p>
  
  <p>I would like to sumbit this to a proper issue tracker but I don't know how to do that since all related JDK trackers are for devs only.</p>
  
  <pre><code># java -version
  openjdk version "1.8.0_242"
  OpenJDK Runtime Environment (IcedTea 3.15.0) (Alpine 8.242.08-r0)
  OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
  
  # mvn -version
  Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
  Maven home: /usr/share/java/maven-3
  Java version: 1.8.0_242, vendor: IcedTea, runtime: /usr/lib/jvm/java-1.8-openjdk/jre
  Default locale: en_US, platform encoding: UTF-8
  OS name: "linux", version: "4.15.0-1050-kvm", arch: "amd64", family: "unix"
  </code></pre>
  
  <p>And here is archive with java project:</p>
  
  <p><a href="https://drive.google.com/uc?id=1ZBdRzUk00QtpkGGnKAzipMjMtcnkKGN4&amp;export=download" rel="nofollow noreferrer">https://drive.google.com/uc?id=1ZBdRzUk00QtpkGGnKAzipMjMtcnkKGN4&amp;export=download</a></p>