[jboss-jira] [JBoss JIRA] (JASSIST-252) Javaassist problem with Test class having inheritance when used with PoweMock

Srinivas Pasupulate (JIRA) issues at jboss.org
Sun Nov 1 06:01:02 EST 2015


    [ https://issues.jboss.org/browse/JASSIST-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13124114#comment-13124114 ] 

Srinivas Pasupulate commented on JASSIST-252:
---------------------------------------------

Hi ,

Im facing the same issue with Java 8 and the latest versions of power mock and mockito.

*Issue:*

Getting the error: "Failed to transform class with name com.gs.ops.domain.StaticClass Reason: java.io.IOException: invalid constant type: 18"

*Solutions Tried:*

Googled threads for issue on with powermock - mockito & java-8

Excluded java assist from powermock and added java assist 3.19.0-GA

Tried different versions of powermock (1.5.4, 1.6.2...)

Below is the exception stack trace:

 java.lang.IllegalStateException: Failed to transform class with name com.StaticClass. Reason: java.io.IOException: invalid constant type: 18
        at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:266)
        at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:180)
        at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:68)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:340)
        at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:145)
        at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:40)
        at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.createTestDelegators(AbstractTestSuiteChunkerImpl.java:244)
        at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:61)
        at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:32)
        at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:34)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
        at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
        at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
        at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
        at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
        at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
        at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
    Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
        at javassist.CtClassType.getClassFile2(CtClassType.java:203)
        at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:110)
        at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:96)
        at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:704)
        at javassist.expr.NewExpr$ProceedForNew.setReturnType(NewExpr.java:243)
        at javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:146)
        at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
        at javassist.compiler.TypeChecker.atVariableAssign(TypeChecker.java:248)
        at javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:217)
        at javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:38)
        at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
        at javassist.compiler.CodeGen.atStmnt(CodeGen.java:329)


Please fix this asap.
Thanks in advance.

> Javaassist problem with Test class having inheritance when used with PoweMock
> -----------------------------------------------------------------------------
>
>                 Key: JASSIST-252
>                 URL: https://issues.jboss.org/browse/JASSIST-252
>             Project: Javassist
>          Issue Type: Bug
>         Environment: Java Version 7  with below JARs
> cglib-nodep-2.2.2.jar
> javassist-3.20.0-GA.jar
> junit-4.12.jar
> mockito-all-1.10.19.jar
> objenesis-2.1.jar
> powermock-mockito-1.6.3-full.jar
>            Reporter: Shailendra Yadav
>            Assignee: Shigeru Chiba
>
> https://github.com/jayway/powermock/issues/583



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list