You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2012/01/21 11:59:22 UTC

svn commit: r1234301 - /commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultClassAccessor.java

Author: simonetripodi
Date: Sat Jan 21 10:59:22 2012
New Revision: 1234301

URL: http://svn.apache.org/viewvc?rev=1234301&view=rev
Log:
fixed compilation issue, compiled in the embedded eclipse compiler, but failed with javac from CLI

Modified:
    commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultClassAccessor.java

Modified: commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultClassAccessor.java
URL: http://svn.apache.org/viewvc/commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultClassAccessor.java?rev=1234301&r1=1234300&r2=1234301&view=diff
==============================================================================
--- commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultClassAccessor.java (original)
+++ commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/DefaultClassAccessor.java Sat Jan 21 10:59:22 2012
@@ -87,7 +87,7 @@ final class DefaultClassAccessor<B>
      * @throws IllegalArgumentException
      * @throws NoSuchMethodException
      */
-    private BeanAccessor<B> invokeConstructor( Constructor<B> constructor, Argument<?>... arguments )
+    private BeanAccessor<B> invokeConstructor( Constructor<? extends B> constructor, Argument<?>... arguments )
         throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException,
         NoSuchMethodException
     {
@@ -133,7 +133,7 @@ final class DefaultClassAccessor<B>
      * @param parameterTypes find method with compatible parameters
      * @return a valid Constructor object. If there's no matching constructor, returns <code>null</code>.
      */
-    private Constructor<B> getMatchingAccessibleConstructor( Class<?>...parameterTypes )
+    private Constructor<? extends B> getMatchingAccessibleConstructor( Class<?>...parameterTypes )
     {
         // see if we can find the method directly
         // most of the time this works and it's much faster
@@ -174,7 +174,7 @@ final class DefaultClassAccessor<B>
         // search through all methods
         int paramSize = parameterTypes.length;
 
-        for ( Constructor<B> ctor : beanClass.getConstructors() )
+        for ( Constructor<?> ctor : beanClass.getConstructors() )
         {
             // compare parameters
             Class<?>[] ctorParams = ctor.getParameterTypes();
@@ -207,7 +207,9 @@ final class DefaultClassAccessor<B>
                              * Swallow SecurityException TODO: Why?
                              */
                         }
-                        return ctor;
+                        @SuppressWarnings( "unchecked" ) // TODO verify, it should be assignable
+                        Constructor<? extends B> returned = (Constructor<? extends B>) ctor;
+                        return returned;
                     }
                 }
             }