leehom opened SPR-9450 and commented
In my test project I use the Spring TestContext Framework and JUnit 4.
When I refer to my jars as an Eclipse user library, the following exception is thrown when I launch a test configured with @RunWith(SpringJUnit4ClassRunner.class)
.
java.lang.TypeNotPresentException: Type [unknown] not present
at sun.reflect.annotation.TypeNotPresentExceptionProxy.generateException(TypeNotPresentExceptionProxy.java:27)
at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:56)
at $Proxy4.value(Unknown Source)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:32)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestMethodReference.<init>(JUnit4TestMethodReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:42)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31)
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: java.lang.NoClassDefFoundError: org/junit/runners/BlockJUnit4ClassRunner
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:892)
at java.lang.ClassLoader.loadClass(ClassLoader.java:302)
at java.lang.ClassLoader.loadClass(ClassLoader.java:300)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
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.parseMemberValue(AnnotationParser.java:280)
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:3072)
at java.lang.Class.getAnnotation(Class.java:3029)
at org.junit.internal.builders.IgnoredBuilder.runnerForClass(IgnoredBuilder.java:13)
... 13 more
No further details from SPR-9450
Comment From: spring-projects-issues
Sam Brannen commented
leehom,
The stack trace tells us that Eclipse could not find the BlockJUnit4ClassRunner
class, which was not present in JUnit 4.4 and earlier versions.
- What version of JUnit 4 did you use to create your user library in Eclipse?
- What version of Spring are you using?
I'll need this information in order to assist you.
Regards,
Sam
Comment From: spring-projects-issues
leehom commented
Hi, JUnit 4 4.8.1 Spring 3.0.0
The bug happens only when i refer my jars as user library, the test gose well when i refer the same jars as individual jar. By the way, can you reproduce the bug?
Comment From: spring-projects-issues
Sam Brannen commented
leehom,
What are the exact contents of your user library for JUnit 4.8.1?
And what are the contents of your .classpath
file in the root of your project?
To see the .classpath
file you might need to open the "Filters" menu from the Package Explorer menu (arrow in the upper right corner) and uncheck the exclusion for ".* resources".
Sam
Comment From: spring-projects-issues
Sam Brannen commented
Hi leehom,
Can you please let us know if you have resolved this issue in the interim?
If not, can you please provide the information I requested in my previous comments?
Thanks,
Sam
Comment From: spring-projects-issues
Sam Brannen commented
I'm resolving this issue as Cannot Reproduce for now, since we have received no further input.
If you still feel that this is a bug with Spring, please reopen this issue and provide the requested information.
Thanks,
Sam
Comment From: vicdecode
We are experiencing a similar issue with JUnitMockito not being present, how do we resolve this?
Comment From: vicdecode
Here is my error message: ava.lang.TypeNotPresentException: Type MockitoJUnitRunner not present at java.base/sun.reflect.annotation.TypeNotPresentExceptionProxy.generateException(TypeNotPresentExceptionProxy.java:46) at java.base/sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:86) at com.sun.proxy.$Proxy2.value(Unknown Source) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28) at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:513) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210) Caused by: java.lang.ClassNotFoundException: MockitoJUnitRunner at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) at java.base/sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:440) at java.base/sun.reflect.annotation.AnnotationParser.parseClassValue(AnnotationParser.java:421) at java.base/sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:350) at java.base/sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:287) at java.base/sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:121) at java.base/sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:73) at java.base/java.lang.Class.createAnnotationData(Class.java:3757) at java.base/java.lang.Class.annotationData(Class.java:3746) at java.base/java.lang.Class.getAnnotation(Class.java:3651) at org.junit.internal.builders.IgnoredBuilder.runnerForClass(IgnoredBuilder.java:10) ... 12 more mockitojunitrunner is not present error
Comment From: sbrannen
@vicdecode, this issue was closed almost 9 years.
In addition, this issue tracker is for the Spring Framework, not for Mockito.
I suggest you post your question on Stack Overflow.