Invokevirtual behavior differences between JDK 1.6 and upcoming 1.7. Changes in behavior due to clarification of overriding behavior as transitive, clarified Invokevirtual JVMS 3rd edition and JLS 3rd edition: 8.4.8.1 Overriding (by Instance Methods) This test represents a run of a 1.6 JDK relative to 1.7 expected results. The 1.6 results are listed/expected results are listed. In all of these examples, B.m was the old expected result (sometimes resulting in AME), but with the clarification of overriding behavior as transitive, C.m is now the expected result. Method access modifiers Call site location Status # A.m() B.m() C.m() A pkgA B pkgB C pkgC ------------------------------------------------------------------------------------------------- 841| A PUB a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 842| ! A PUB a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 843| A PUB ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 844| ! A PUB ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 845| A PUB a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 846| ! A PUB a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 847| A PUB ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 848| ! A PUB ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 849| A PUB a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 850| ! A PUB a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 851| A PUB ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 852| ! A PUB ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 941| A PROT a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m IAE | FAILED 942| ! A PROT a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m IAE | FAILED 943| A PROT ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m IAE AME/C.m IAE | FAILED 944| ! A PROT ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m IAE AME/C.m IAE | FAILED 945| A PROT a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m IAE | FAILED 946| ! A PROT a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m IAE | FAILED 947| A PROT ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m IAE AME/C.m IAE | FAILED 948| ! A PROT ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m IAE AME/C.m IAE | FAILED 949| A PROT a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m IAE | FAILED 950| ! A PROT a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m IAE | FAILED 951| A PROT ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m IAE AME/C.m IAE | FAILED 952| ! A PROT ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m IAE AME/C.m IAE | FAILED 1641| a.A PUB a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 1642| ! a.A PUB a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 1643| a.A PUB ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 1644| ! a.A PUB ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 1645| a.A PUB a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 1646| ! a.A PUB a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 1647| a.A PUB ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 1648| ! a.A PUB ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 1649| a.A PUB a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 1650| ! a.A PUB a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 1651| a.A PUB ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 1652| ! a.A PUB ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 1741| a.A PROT a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m IAE | FAILED 1742| ! a.A PROT a.B PP b.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m IAE | FAILED 1743| a.A PROT ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m IAE | FAILED 1744| ! a.A PROT ! a.B PP b.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m IAE | FAILED 1745| a.A PROT a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m IAE | FAILED 1746| ! a.A PROT a.B PP b.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m IAE | FAILED 1747| a.A PROT ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m IAE | FAILED 1748| ! a.A PROT ! a.B PP b.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m IAE | FAILED 1749| a.A PROT a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m IAE | FAILED 1750| ! a.A PROT a.B PP b.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m IAE | FAILED 1751| a.A PROT ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m IAE | FAILED 1752| ! a.A PROT ! a.B PP b.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m IAE | FAILED 2041| a.A PUB b.B PP a.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 2042| ! a.A PUB b.B PP a.C PUB | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 2043| a.A PUB ! b.B PP a.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 2044| ! a.A PUB ! b.B PP a.C PUB | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 2045| a.A PUB b.B PP a.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 2046| ! a.A PUB b.B PP a.C PROT | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 2047| a.A PUB ! b.B PP a.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 2048| ! a.A PUB ! b.B PP a.C PROT | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 2049| a.A PUB b.B PP a.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 2050| ! a.A PUB b.B PP a.C PP | B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m B.m/C.m | FAILED 2051| a.A PUB ! b.B PP a.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 2052| ! a.A PUB ! b.B PP a.C PP | AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m AME/C.m | FAILED 2141| a.A PROT b.B PP a.C PUB | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m B.m/C.m | FAILED 2142| ! a.A PROT b.B PP a.C PUB | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m B.m/C.m | FAILED 2143| a.A PROT ! b.B PP a.C PUB | AME/C.m AME/C.m AME/C.m IAE AME/C.m AME/C.m | FAILED 2144| ! a.A PROT ! b.B PP a.C PUB | AME/C.m AME/C.m AME/C.m IAE AME/C.m AME/C.m | FAILED 2145| a.A PROT b.B PP a.C PROT | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m B.m/C.m | FAILED 2146| ! a.A PROT b.B PP a.C PROT | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m B.m/C.m | FAILED 2147| a.A PROT ! b.B PP a.C PROT | AME/C.m AME/C.m AME/C.m IAE AME/C.m AME/C.m | FAILED 2148| ! a.A PROT ! b.B PP a.C PROT | AME/C.m AME/C.m AME/C.m IAE AME/C.m AME/C.m | FAILED 2149| a.A PROT b.B PP a.C PP | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m B.m/C.m | FAILED 2150| ! a.A PROT b.B PP a.C PP | B.m/C.m B.m/C.m B.m/C.m IAE B.m/C.m B.m/C.m | FAILED 2151| a.A PROT ! b.B PP a.C PP | AME/C.m AME/C.m AME/C.m IAE AME/C.m AME/C.m | FAILED 2152| ! a.A PROT ! b.B PP a.C PP | AME/C.m AME/C.m AME/C.m IAE AME/C.m AME/C.m | FAILED