Index: C:/JavaProjects/hivemind-2-svn/framework/src/java/org/apache/hivemind/util/PropertyAdaptor.java =================================================================== --- C:/JavaProjects/hivemind-2-svn/framework/src/java/org/apache/hivemind/util/PropertyAdaptor.java (revision 627591) +++ C:/JavaProjects/hivemind-2-svn/framework/src/java/org/apache/hivemind/util/PropertyAdaptor.java (working copy) @@ -119,7 +119,7 @@ if (e == null) { - Object convertedValue = instantiateViaStringConstructor(target, value); + Object convertedValue = instantiateViaStringConstructor(value); if (convertedValue != null) return convertedValue; @@ -151,7 +151,7 @@ * String argument. */ - private Object instantiateViaStringConstructor(Object target, String value) + private Object instantiateViaStringConstructor(String value) { try { Index: C:/JavaProjects/hivemind-2-svn/xml/src/test/hivemind/test/rules/TestSmartTranslator.java =================================================================== --- C:/JavaProjects/hivemind-2-svn/xml/src/test/hivemind/test/rules/TestSmartTranslator.java (revision 627591) +++ C:/JavaProjects/hivemind-2-svn/xml/src/test/hivemind/test/rules/TestSmartTranslator.java (working copy) @@ -22,6 +22,7 @@ import org.apache.hivemind.schema.Translator; import org.apache.hivemind.schema.rules.SmartTranslator; import org.apache.hivemind.test.HiveMindTestCase; +import org.junit.Test; /** * Tests for {@link org.apache.hivemind.schema.rules.SmartTranslator}. @@ -42,7 +43,16 @@ assertEquals(new Integer(-37), result); } + + public void testInteger() + { + Translator t = new SmartTranslator(); + Object result = t.translate(null, Integer.class, "-37", null); + + assertEquals(new Integer(-37), result); + } + public void testNullInput() { Translator t = new SmartTranslator(); Index: C:/JavaProjects/hivemind-2-svn/xml/src/java/org/apache/hivemind/schema/rules/SmartTranslator.java =================================================================== --- C:/JavaProjects/hivemind-2-svn/xml/src/java/org/apache/hivemind/schema/rules/SmartTranslator.java (revision 627591) +++ C:/JavaProjects/hivemind-2-svn/xml/src/java/org/apache/hivemind/schema/rules/SmartTranslator.java (working copy) @@ -16,6 +16,7 @@ import java.beans.PropertyEditor; import java.beans.PropertyEditorManager; +import java.lang.reflect.Constructor; import java.util.Map; import org.apache.hivemind.ApplicationRuntimeException; @@ -90,5 +91,26 @@ } } + + /** + * Checks to see if this adaptor's property type has a public constructor that takes a single + * String argument. + */ + private Object instantiateViaStringConstructor(Class propertyType, String value) + { + try + { + Constructor c = propertyType.getConstructor(new Class[] + { String.class }); + + return c.newInstance(new Object[] + { value }); + } + catch (Exception ex) + { + return null; + } + } + } \ No newline at end of file