Uploaded image for project: 'OpenMRS Core'
  1. OpenMRS Core
  2. TRUNK-4595

Exception When Running ExtensionUtilTest under Java 8

    XMLWordPrintable

    Details

    • Complexity:
      Low

      Description

      Dev Notes:

      When creating pull requests, be sure to specify java8 branch as the target into which to merge the code

      The initializationError test in the ExtensionUtilTest class throws an exception when running under Java 8.

      <error message="Failed to transform class with name org.openmrs.module.ModuleFactory. Reason: java.io.IOException: invalid constant type: 18" type="java.lang.IllegalStateException">java.lang.IllegalStateException: Failed to transform class with name org.openmrs.module.ModuleFactory. Reason: java.io.IOException: invalid constant type: 18
      at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:219)
      at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:147)
      at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:340)
      at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
      at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
      at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
      at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:439)
      at sun.reflect.annotation.AnnotationParser.parseClassValue(AnnotationParser.java:420)
      at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
      at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
      at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
      at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
      at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
      at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
      at java.lang.Class.createAnnotationData(Class.java:3508)
      at java.lang.Class.annotationData(Class.java:3497)
      at java.lang.Class.getAnnotation(Class.java:3402)
      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:110)
      at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.<init>(PowerMockJUnit44RunnerDelegateImpl.java:72)
      at org.powermock.modules.junit4.internal.impl.PowerMockJUnit49RunnerDelegateImpl.<init>(PowerMockJUnit49RunnerDelegateImpl.java:29)
      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.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:143)
      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: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: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.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:51)
      at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:115)
      at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:102)
      at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
      at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
      Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
      at javassist.CtClassType.getClassFile2(CtClassType.java:203)
      at javassist.CtClassType.subtypeOf(CtClassType.java:303)
      at javassist.CtClassType.subtypeOf(CtClassType.java:318)
      at javassist.compiler.MemberResolver.compareSignature(MemberResolver.java:247)
      at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:119)
      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)
      at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
      at javassist.compiler.CodeGen.atStmnt(CodeGen.java:350)
      at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
      at javassist.compiler.CodeGen.atIfStmnt(CodeGen.java:404)
      at javassist.compiler.CodeGen.atStmnt(CodeGen.java:354)
      at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
      at javassist.compiler.Javac.compileStmnt(Javac.java:568)
      at javassist.expr.NewExpr.replace(NewExpr.java:206)
      at org.powermock.core.transformers.impl.MainMockTransformer$PowerMockExpressionEditor.edit(MainMockTransformer.java:445)
      at javassist.expr.ExprEditor.loopBody(ExprEditor.java:211)
      at javassist.expr.ExprEditor.doit(ExprEditor.java:90)
      at javassist.CtClassType.instrument(CtClassType.java:1374)
      at org.powermock.core.transformers.impl.MainMockTransformer.transform(MainMockTransformer.java:75)
      at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:215)
      ... 57 more
      Caused by: java.io.IOException: invalid constant type: 18
      at javassist.bytecode.ConstPool.readOne(ConstPool.java:1090)
      at javassist.bytecode.ConstPool.read(ConstPool.java:1033)
      at javassist.bytecode.ConstPool.<init>(ConstPool.java:149)
      at javassist.bytecode.ClassFile.read(ClassFile.java:737)
      at javassist.bytecode.ClassFile.<init>(ClassFile.java:108)
      at javassist.CtClassType.getClassFile2(CtClassType.java:190)
      ... 85 more
      </error>

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              ibewes Wesley Brown
              Reporter:
              ibewes Wesley Brown
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: