[ https://issues.apache.org/jira/browse/DDLUTILS-190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Dudziak resolved DDLUTILS-190. ------------------------------------- Resolution: Fixed Fix Version/s: 1.1 The Column.setSize only needs to be slightly more robust wrt. to whitespace. It should not have to be aware of 'special' values such as "null". Instead, I made the contract more explicit in the javadoc and the XML parsing more robust. > column.setSize needs to be a bit more robust when trying to convert numbers > --------------------------------------------------------------------------- > > Key: DDLUTILS-190 > URL: https://issues.apache.org/jira/browse/DDLUTILS-190 > Project: DdlUtils > Issue Type: Bug > Components: Core (No specific database) > Reporter: Joe Fisher > Assignee: Thomas Dudziak > Fix For: 1.1 > > > When the xml file uses the text "null" to describe a null column, the setSize > does not handle this case, I wrapped it in number format exception, and null > it out. Added log to column.java > Below is the patch to fix this issue: > Index: src/java/org/apache/ddlutils/model/Column.java > =================================================================== > --- src/java/org/apache/ddlutils/model/Column.java (revision 608559) > +++ src/java/org/apache/ddlutils/model/Column.java (working copy) > @@ -29,6 +29,9 @@ > import org.apache.commons.beanutils.ConvertUtils; > import org.apache.commons.lang.builder.EqualsBuilder; > import org.apache.commons.lang.builder.HashCodeBuilder; > +import org.apache.commons.logging.Log; > +import org.apache.commons.logging.LogFactory; > + > import org.apache.ddlutils.util.Jdbc3Utils; > /** > @@ -41,6 +44,8 @@ > /** Unique ID for serialization purposes. */ > private static final long serialVersionUID = -6226348998874210093L; > + private static final Log _log = LogFactory.getLog(Column.class); > + > /** The name of the column. */ > private String _name; > /** The java name of the column (optional and unused by DdlUtils, for > Torque compatibility). */ > @@ -322,16 +327,24 @@ > int pos = size.indexOf(","); > _size = size; > - if (pos < 0) > + try > { > + if (pos < 0) > + { > + _scale = 0; > + _sizeAsInt = new Integer(_size); > + } > + else > + { > + _sizeAsInt = new Integer(size.substring(0, pos)); > + _scale = Integer.parseInt(size.substring(pos + 1)); > + } > + } catch (NumberFormatException ex) { > + _log.warn(String.format("Unable to convert %s to a number or > number,scale. Setting to null", _size), ex); > + _size = null; > + _sizeAsInt = null; > _scale = 0; > - _sizeAsInt = new Integer(_size); > } > - else > - { > - _sizeAsInt = new Integer(size.substring(0, pos)); > - _scale = Integer.parseInt(size.substring(pos + 1)); > - } > } > else > { -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.