[ https://issues.apache.org/jira/browse/BEANUTILS-276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Niall Pemberton resolved BEANUTILS-276. --------------------------------------- Resolution: Won't Fix > Exceptions when setting properties to null (specific types only) > ---------------------------------------------------------------- > > Key: BEANUTILS-276 > URL: https://issues.apache.org/jira/browse/BEANUTILS-276 > Project: Commons BeanUtils > Issue Type: Bug > Components: ConvertUtils & Converters > Affects Versions: 1.7.0 > Environment: java 1.4.2, 1.5.0 > Reporter: David Birch > > for the following types attempting to set a property to null using > BeanUtils.setProperty(java.lang.Object, java.lang.String, java.lang.Object) > will result in an Exception > java.math.BigDecimal > java.math.BigInteger > java.net.URL > java.io.File > java.sql.Date > java.sql.Time > java.sql.Timestamp > all primitive wrappers work fine, as does java.util.Date > sample stacktrace is > Failed Set empty [bigDecimal1] > org.apache.commons.beanutils.ConversionException: No value specified > at > org.apache.commons.beanutils.converters.BigDecimalConverter.convert(BigDecimalConverter.java:103) > at > org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:428) > at > org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1002) > at > org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:313) > at > com.marsh.ste.testing.steps.DataStepUT.testChanges(DataStepUT.java:52) > The converter classes seem to sort of have an option to handle null inputs by > returning a default value - from BigDecimalConverter.convert() > if (value == null) { > if (useDefault) { > return (defaultValue); > } else { > throw new ConversionException("No value specified"); > } > } > though i am not totally sure, might be better to fix this in the > BeanUtilsBean.setProperty method, add some other cases - block starting line > 1001 > if ((value instanceof String) || (value == null)) { > newValue = getConvertUtils().convert((String) value, type); > } else if (value instanceof String[]) { > newValue = getConvertUtils().convert(((String[]) value)[0], > type); > } else if (getConvertUtils().lookup(value.getClass()) != null) { > newValue = getConvertUtils().convert(value.toString(), type); > } else { > newValue = value; > } > cheers > David -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]