1

I have a problem with instrumentation of my Model classes when I use JDK8 features there(lamba). It just silently skips those classes.

When I try to call:

 CtClass clazz = getClazz("me.factorify.server.person.domain.Person");
 clazz.getModifiers();

I get this exception:

 java.lang.RuntimeException: java.io.IOException: invalid constant type: 18 at 14
        at javassist.CtClassType.getClassFile2(CtClassType.java:204)
        at javassist.CtClassType.getModifiers(CtClassType.java:388)
        at me.factorify.server.person.domain.PersonTest.testName(PersonTest.java:19)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
        at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
        at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
    Caused by: java.io.IOException: invalid constant type: 18 at 14
        at javassist.bytecode.ConstPool.readOne(ConstPool.java:1044)
        at javassist.bytecode.ConstPool.read(ConstPool.java:984)
        at javassist.bytecode.ConstPool.<init>(ConstPool.java:125)
        at javassist.bytecode.ClassFile.read(ClassFile.java:770)
        at javassist.bytecode.ClassFile.<init>(ClassFile.java:114)
        at javassist.CtClassType.getClassFile2(CtClassType.java:191)
        ... 28 more

It's caused by old version of javassist/asm.

Do you have any workaround for that?

EDIT: I think I fixed it and created this pull request https://github.com/javalite/activejdbc/pull/336

jakub.petr
  • 2,951
  • 2
  • 23
  • 34

1 Answers1

1

@jacub.petr, thanks for the pull request. We built and deployed the latest snapshot with your fix. Pull version 1.4.9-SNAPSHOT from https://oss.sonatype.org/content/repositories/snapshots/org/javalite/activejdbc/1.4.10-SNAPSHOT/ and try again. We will be releasing 1.5 soon and your fix will be included

ipolevoy
  • 5,432
  • 2
  • 31
  • 46
  • Thanks for a nice framework. I had an issue with my locale. The build(tests) failed for mine. Could you maybe mention it in the documentation? (something like when you are outside US you have to run it with -Duser.language=en -Duser.country=US -Duser.variant=US). Or maybe add it to pom.xml and build it only with that locale. I was freaking out for a minute that I broke so many tests. :-) – jakub.petr Dec 30 '14 at 22:45
  • I would slightly prefer adding it to pom.xml but it would require adding surefire and that's maybe not worth it :-) – jakub.petr Dec 30 '14 at 22:47
  • @jakub.petr, I added a new issue: https://github.com/javalite/activejdbc/issues/337 – ipolevoy Jan 01 '15 at 00:28