Bug 159033 Adding Datasource Property Bindings with 10,000+ ids causes incorrect XML creation.
I have a large report that has programatically generated more than 10,000 ids for my report components. Now, I go to edit the property bindings for the data source for my report, so that I can specify parameter-defined database connection properties. When I look at the XML, I find that the <list-property name="propertyBindings"> section was incorrectly created by the report designer. (See below for sample). <list-property name="propertyBindings"> <structure> <property name="name">odaDriverClass</property> <property name="id">13,218</property> </structure> <structure> <property name="name">odaURL</property> <property name="id">13,218</property> <expression name="value">params["DBConnectionString"]</expression> </structure> <structure> <property name="name">odaUser</property> <property name="id">13,218</property> <expression name="value">params["DBPassword"]</expression> </structure> <structure> <property name="name">odaPassword</property> <property name="id">13,218</property> </structure> <structure> <property name="name">odaJndiName</property> <property name="id">13,218</property> </structure> </list-property> Once I look at the XML once, I can never go back to Layout/Preview/... tabs. I recieve the error "Error in XML Source Page must be corrected before other pages can be used." The issue is that the line(s): <property name="id">13,218</property> are causing the XML parser to break. I can manually fixing this by removing the comma in the id variable, so the line(s) should look like: <property name="id">13218</property> So far, this only seems to be occuring on IDs generated for data source property bindings. The real issue with this is that, I never realized there was an error until I viewed the "XML Source" tab. And after I looked at it once, I was not able to return to any other tabs thereafter. Sheldon Warkentin 3esi
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/metadata/IntegerPropertyType.java
* <li>A Boolean object, <code>TRUE</code> will be converted into
	 * Integer(1), <code>FALST</code> will be converted into Integer(0)</li>
	 * <li>String that must evaluate to an integer in either of the two Java
	 * forms: decimal [1-9][0-9]* or hexadecimal format &[hH]xxxx.</li>
	 * <li>String that must evaluate to an HTML hexidecimal: #xxxxx.</li>.
	 * <p>
	 * 
	 * @return object of type Integer or null if value is null..
	 */
	public Object validateValue( Module module, PropertyDefn defn, Object value )
			throws PropertyValueException
	{
		if ( value == null )
			return null;
		if ( value instanceof Integer )
			return value;
		if ( value instanceof Float )
			return new Integer( ( (Float) value ).intValue( ) );
		if ( value instanceof Double )
			return new Integer( ( (Double) value ).intValue( ) );
		if ( value instanceof String )
		{
			if ( StringUtil.trimString( (String) value ) == null )
				return null;
			return parseInteger( ( (String) value ).trim( ) );
		}
		if ( value instanceof BigDecimal )
			return new Integer( ( (BigDecimal) value ).intValue( ) );
		if ( value instanceof Boolean )
			return new Integer( ( (Boolean) value ).booleanValue( )