JDK-8156073 : 2-slot LiveStackFrame locals (long and double) are incorrect
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 9
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2016-05-04
  • Updated: 2017-02-23
  • Resolved: 2017-01-31
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 9
10Fixed 9 b157Fixed
Related Reports
Blocks :  
Relates :  
Description
java.lang.LiveStackFrame.getLocals() uses two consecutive slots in the returned array for storing local variables of type long or double.  Testing should be added to confirm that the correct values for such local variables can be reconstituted from the return values of getLocals().

Comments
First review thread: http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-August/042979.html Later review thread: http://mail.openjdk.java.net/pipermail/core-libs-dev/2017-January/046127.html
27-01-2017

fabio@paralleluniverse.co reports this issue and contributes a regression test uncovering the different behavior/issue when running with -Xint, -Xcomp and -Xcomp -XX:-TieredCompilation. http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-June/041666.html
07-06-2016

Likely related: different behavior between [linux|windows]_i586 and linux_x64 for jdk/test/java/lang/LocalsAndOperands.java (slot 6): i586: local 0: LocalsAndOperands$Tester@b4baf2 type LocalsAndOperands$Tester local 1: 10 type I local 2: 122 type I local 3: himom type java.lang.String local 4: 0 type I local 5: 1000000 type I local 6: 1074340347 type I <----- local 7: 1293080650 type I x64: local 0: LocalsAndOperands$Tester@490d0912 type LocalsAndOperands$Tester local 1: 10 type I local 2: 122 type I local 3: himom type java.lang.String local 4: 0 type I local 5: 1000000 type I local 6: 0 type I <----- local 7: 1293080650 type I
04-05-2016

Also interesting, solaris_sparcv9: local 0: LocalsAndOperands$Tester@ece2f7f type LocalsAndOperands$Tester local 1: 10 type I local 2: 122 type I local 3: himom type java.lang.String local 4: 0 type I local 5: 0 type I <----- local 6: 0 type I local 7: 1074340347 type I local 8: 0 type I
04-05-2016