svn commit: r910101 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion: Converters.java MiscConverters.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r910101 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion: Converters.java MiscConverters.java

doogie-3
Author: doogie
Date: Sun Feb 14 22:37:14 2010
New Revision: 910101

URL: http://svn.apache.org/viewvc?rev=910101&view=rev
Log:
Protect against public classes with non-public constructors.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/Converters.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/Converters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/Converters.java?rev=910101&r1=910100&r2=910101&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/Converters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/Converters.java Sun Feb 14 22:37:14 2010
@@ -119,10 +119,17 @@
      * @param containerClass
      */
     public static void loadContainedConverters(Class<?> containerClass) {
+        // This only returns -public- classes and interfaces
         for (Class<?> clz: containerClass.getClasses()) {
             try {
+                // non-abstract, which means no interfaces or abstract classes
                 if ((clz.getModifiers() & Modifier.ABSTRACT) == 0) {
-                    clz.newInstance();
+                    try {
+                        clz.getConstructor().newInstance();
+                    } catch (NoSuchMethodException e) {
+                        // ignore this, as this class might be some other helper class,
+                        // with a non-pubilc constructor
+                    }
                 }
             } catch (Exception e) {
                 Debug.logError(e, module);

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java?rev=910101&r1=910100&r2=910101&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java Sun Feb 14 22:37:14 2010
@@ -326,6 +326,12 @@
         }
     }
 
+    public static class NotAConverter {
+        protected NotAConverter() {
+            throw new Error("Should not be loaded");
+        }
+    }
+
     public void loadConverters() {
         Converters.loadContainedConverters(MiscConverters.class);
     }