[jboss-jira] [JBoss JIRA] (JASSIST-223) Failed to transform class with name ... Reason: [source error] incompatible type for =
Shigeru Chiba (JIRA)
issues at jboss.org
Fri May 9 10:09:56 EDT 2014
[ https://issues.jboss.org/browse/JASSIST-223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966798#comment-12966798 ]
Shigeru Chiba commented on JASSIST-223:
---------------------------------------
The exception says that the source code given by powermock has a type error for assignment.
The source code might need automatic boxing/unboxing, which is not supported by the compiler
of Javassist. If so, this is a bug of powermock.
For further investigation, I need a complete program reproducing this bug. Since I'm not familiar
with powermock, please tell me how to run that program (by command line shell). The version
number of powermock is also necessary.
> Failed to transform class with name ... Reason: [source error] incompatible type for =
> ---------------------------------------------------------------------------------------
>
> Key: JASSIST-223
> URL: https://issues.jboss.org/browse/JASSIST-223
> Project: Javassist
> Issue Type: Bug
> Affects Versions: 3.18.1-GA
> Environment: Win 7, 64 Bit, JDK 1.6.0_55
> Reporter: TeeWe Tee
> Assignee: Shigeru Chiba
> Attachments: SigPadApi.class
>
>
> During the usage of powermock and the mocking of a class the exception below occurs. Since this is a javaassist issue I write it here.
> Any hints about the problem? Any help will be appreciated.
> java.lang.IllegalStateException: Failed to transform class with name com.company.someClass. Reason: [source error] incompatible type for =
> at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:214)
> at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:144)
> at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:249)
> at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:95)
> at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:107)
> at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31)
> at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:370)
> at sun.reflect.annotation.AnnotationParser.parseClassValue(AnnotationParser.java:351)
> at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
> at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
> at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
> at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
> at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
> at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
> at java.lang.Class.initAnnotationsIfNecessary(Class.java:3127)
> at java.lang.Class.getAnnotation(Class.java:3086)
> at org.junit.internal.MethodSorter.getDeclaredMethods(MethodSorter.java:52)
> at org.junit.internal.runners.TestClass.getAnnotatedMethods(TestClass.java:45)
> at org.junit.internal.runners.MethodValidator.validateTestMethods(MethodValidator.java:71)
> at org.junit.internal.runners.MethodValidator.validateStaticMethods(MethodValidator.java:44)
> at org.junit.internal.runners.MethodValidator.validateMethodsForDefaultRunner(MethodValidator.java:50)
> at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.validate(PowerMockJUnit44RunnerDelegateImpl.java:108)
> at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.<init>(PowerMockJUnit44RunnerDelegateImpl.java:70)
> at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl.<init>(PowerMockJUnit47RunnerDelegateImpl.java:42)
> at org.powermock.modules.junit4.internal.impl.PowerMockJUnit49RunnerDelegateImpl.<init>(PowerMockJUnit49RunnerDelegateImpl.java:25)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:149)
> at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:39)
> at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.createTestDelegators(AbstractTestSuiteChunkerImpl.java:217)
> at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:59)
> at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:32)
> at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:33)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
> at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
> 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:26)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: javassist.CannotCompileException: [source error] incompatible type for =
> at javassist.expr.FieldAccess.replace(FieldAccess.java:216)
> at org.powermock.core.transformers.impl.MainMockTransformer$PowerMockExpressionEditor.edit(MainMockTransformer.java:274)
> at javassist.expr.ExprEditor.loopBody(ExprEditor.java:198)
> at javassist.expr.ExprEditor.doit(ExprEditor.java:91)
> at javassist.CtClassType.instrument(CtClassType.java:1398)
> at org.powermock.core.transformers.impl.MainMockTransformer.transform(MainMockTransformer.java:74)
> at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:210)
> ... 55 more
> Caused by: compile error: incompatible type for =
> at javassist.compiler.CodeGen.badAssign(CodeGen.java:770)
> at javassist.compiler.CodeGen.atAssignCore(CodeGen.java:863)
> at javassist.compiler.CodeGen.atVariableAssign(CodeGen.java:793)
> at javassist.compiler.CodeGen.atAssignExpr(CodeGen.java:747)
> at javassist.compiler.CodeGen.atStmnt(CodeGen.java:332)
> at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)
> at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351)
> at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)
> at javassist.compiler.CodeGen.atIfStmnt(CodeGen.java:405)
> at javassist.compiler.CodeGen.atStmnt(CodeGen.java:355)
> at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)
> at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351)
> at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)
> at javassist.compiler.Javac.compileStmnt(Javac.java:569)
> at javassist.expr.FieldAccess.replace(FieldAccess.java:210)
> ... 61 more
--
This message was sent by Atlassian JIRA
(v6.2.3#6260)
More information about the jboss-jira
mailing list