[jboss-svn-commits] JBoss Common SVN: r2465 - jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 26 04:54:15 EDT 2007


Author: alex.loubyansky at jboss.com
Date: 2007-07-26 04:54:15 -0400 (Thu, 26 Jul 2007)
New Revision: 2465

Modified:
   jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java
Log:
why wouldn't it return the default ctor? (for org.jboss.ejb.metadata.spec.InterceptorClassesMetaData)

Modified: jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java
===================================================================
--- jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java	2007-07-25 14:51:03 UTC (rev 2464)
+++ jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java	2007-07-26 08:54:15 UTC (rev 2465)
@@ -85,14 +85,34 @@
          ClassInfo collectionType = (ClassInfo) propertyType; 
          if (Modifier.isAbstract(collectionType.getModifiers()) == false)
          {
+            ConstructorInfo constructor = null;
             try
             {
-               ConstructorInfo constructor = collectionType.getDeclaredConstructor(null);
+               constructor = collectionType.getDeclaredConstructor(null);
                c = (Collection) constructor.newInstance(null);
             }
             catch (Throwable t)
             {
-               throw new RuntimeException("QName " + qName + " error creating collection: " + propertyType.getName(), t);
+               for(ConstructorInfo ctor : collectionType.getDeclaredConstructors())
+               {
+                  if(ctor.getParameterTypes().length == 0)
+                  {
+                     log.warn("ClassInfo.getDeclaredConstructor(null) didn't work for " + collectionType.getName() + ", found the default ctor in ClassInfo.getDeclaredConstructors()");
+                     try
+                     {
+                        c = (Collection<Object>) ctor.newInstance(null);
+                     }
+                     catch (Throwable e)
+                     {
+                        throw new RuntimeException("QName " + qName + " error creating collection: " + propertyType.getName(), t);
+                     }
+                  }
+               }
+
+               if(c == null)
+               {
+                  throw new RuntimeException("QName " + qName + " no default constructor for type " + collectionType + ": " + propertyType.getName());
+               }
             }
          }
          else if (isSet)




More information about the jboss-svn-commits mailing list