more maximal generics errors

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/proxy/branches/version-2.0-work@979745 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationFactory.java b/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationFactory.java
index 21cc891..4769fa1 100644
--- a/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationFactory.java
+++ b/stub/src/main/java/org/apache/commons/proxy2/stub/AnnotationFactory.java
@@ -99,8 +99,10 @@
      */
     public <A extends Annotation> A create(
             AnnotationStubConfigurer<A> configurer) {
-        return createInternal(Thread.currentThread().getContextClassLoader(),
-                configurer);
+        @SuppressWarnings("unchecked")
+        final A result = (A) createInternal(Thread.currentThread()
+                .getContextClassLoader(), configurer);
+        return result;
     }
 
     /**
@@ -112,7 +114,9 @@
      */
     public <A extends Annotation> A create(ClassLoader classLoader,
             AnnotationStubConfigurer<A> configurer) {
-        return createInternal(classLoader, configurer);
+        @SuppressWarnings("unchecked")
+        final A result = (A) createInternal(classLoader, configurer);
+        return result;
     }
 
     /**
@@ -123,8 +127,10 @@
      * @return stubbed annotation proxy
      */
     public <A extends Annotation> A create(Class<A> annotationType) {
-        return createInternal(Thread.currentThread().getContextClassLoader(),
+        @SuppressWarnings("unchecked")
+        final A result = (A) createInternal(Thread.currentThread().getContextClassLoader(),
                 annotationType);
+        return result;
     }
 
     /**
@@ -136,14 +142,18 @@
      */
     public <A extends Annotation> A create(ClassLoader classLoader,
             Class<A> annotationType) {
-        return createInternal(classLoader, annotationType);
+        @SuppressWarnings("unchecked")
+        final A result = (A) createInternal(classLoader, annotationType);
+        return result;
     }
 
-    private <A extends Annotation> A createInternal(ClassLoader classLoader, Object configurer) {
+    private <A extends Annotation> A createInternal(ClassLoader classLoader,
+            Object configurer) {
         try {
             CONFIGURER.set(configurer);
             @SuppressWarnings("unchecked")
-            final A result = (A) proxyFactory.createInvokerProxy(classLoader, ANNOTATION_INVOKER, getStubType());
+            final A result = (A) proxyFactory.createInvokerProxy(classLoader,
+                    ANNOTATION_INVOKER, getStubType());
             return result;
         } finally {
             CONFIGURER.remove();