title: TypeNotPresentExceptionProxy
body: <p>When upgrading from Surefire 2.6 to Surefire 2.13, I get a <code>TypeNotPresentExceptionProxy</code> when running my unit tests.</p>
  
  <pre><code>java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
      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:3070)
      at java.lang.Class.getAnnotation(Class.java:3029)
      at org.apache.maven.surefire.common.junit4.JUnit4TestChecker.isValidJUnit4Test(JUnit4TestChecker.java:64)
  </code></pre>
  
  <p>In <code>JUnit4TestChecker</code>, line 64 looks like this:</p>
  
  <pre class="lang-java prettyprint-override"><code>Annotation runWithAnnotation = testClass.getAnnotation( runWith );
  </code></pre>
  
  <p>So Surefire inspects the <code>@RunWith</code> annotation to make sure its type is valid. Our tests use Spring, so <code>@RunWith</code> looks like this in our test classes:</p>
  
  <pre class="lang-java prettyprint-override"><code>@RunWith(SpringJUnit4ClassRunner.class)
  </code></pre>
  
  <p>It seems like Surefire isn't finding the <code>SpringJUnit4ClassRunner</code> class. I'm not sure why since under Surefire 2.6, the tests run fine.</p>
  
  <p>Any ideas?</p>