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.

  1. What version of JUnit 4 did you use to create your user library in Eclipse?
  2. 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.