Author: doogie
Date: Sun Feb 14 22:37:14 2010
New Revision: 910101
URL:
http://svn.apache.org/viewvc?rev=910101&view=revLog:
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);
}