Skip to content

A test class containing the opcode iinc_w causes ArrayIndexOutOfBoundsException #485

@hagami

Description

@hagami
  • Version of JMockit that was used:
    JMockit1.37

  • Description of the problem:
    A test class below throws ArrayIndexOutOfBoundsException with no StackTrace.

import org.junit.Test;

public class TestClass {
    @Test
    public void test() {
        int i = 0;
        i += 1000; // compiled to opcode iinc_w
    }
}

I traced and found that the exception was thrown at mockit.external.asm.MethodReader.readAllLabelsInCodeBlock(MethodReader.java:339)
and it was caused by comparison of opcode IINC at MethodReader.java:354.

Opcodes.IINC should be used, not InstructionType.IINC.

Same pattern found in MethodReader.readWideInstruction.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions