Here are the dependencies in pom.xml :
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.24.0-GA</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
When i include @PrepareForTest in my tests, i get this error :
[ERROR] java.lang.StackOverflowError
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:927)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.checkParamTypes(Tracer.java:918)
[ERROR] at javassist.bytecode.stackmap.Tracer.doInvokeMethod(Tracer.java:798)
[ERROR] at javassist.bytecode.stackmap.Tracer.doOpcode148_201(Tracer.java:594)
[ERROR] at javassist.bytecode.stackmap.Tracer.doOpcode(Tracer.java:78)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:195)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
[ERROR] at javassist.bytecode.stackmap.MapMaker.make(MapMaker.java:207)
I tried to change the javassist version but it did not help.
Edit: Adding code that gives above error.
@RunWith(PowerMockRunner.class)
@PrepareForTest(A.class)
public class ServiceTest
{
@Test
public void test1() {
PowerMockito.mockStatic(A.class);
Mockito.when(A.findNumber()).thenReturn(13);
System.out.println(A.findNumber());
}
@Test
public void test2() {
PowerMockito.mockStatic(A.class);
Mockito.when(A.getNumber(25)).thenReturn(50);
System.out.println(A.getNumber(25));
}
}
Has anyone seen this issue before?