Sono un noob agli interni di JVM.
Qualcuno può spiegare cosa succede a livello di interprete Java quando viene lanciato IncompatibleClassChangeError?
Sto affrontando un problema simile a quello descritto qui: link ma avendo difficoltà a capire questo commento (citato dalla stessa pagina):
This is actually a bug in the interpreter's handling of IncompatibleClassChangeError. The bug is that the logic that checks for invoking a method on a null object, which results in a NullPointerException, is executed before the logic that checks for IncompatibleClassChangeError. In the case of a non-static method becoming static this will cause the interpreter to read a value of the stack which isn't guaranteed to be valid. In this test case it reads a value one above the top of stack which may or may not have a valid value in it. If you modify the test slightly to push a couple nulls and then pop them off before doing the invocation, the test will fail on every vm JavaSoft has shipped. Here's the modified test...