Bug 191687 ArrayIndexOutOfBoundsException occurs when open the attache report design file
Description: ArrayIndexOutOfBoundsException occurs when open the attache report design file Build number: 2.2.0.v20070608-0630 Steps to reproduce: 1, Open the attache report design Expected result: If the report design is invalud, we just pops up a warning message to tell user Actual result: ArrayIndexOutOfBoundsException occurs Error log: java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.birt.report.designer.internal.ui.editors.schematic.border.TableBorderHelper.initialize(TableBorderHelper.java:165) at org.eclipse.birt.report.designer.internal.ui.editors.schematic.border.TableBorderHelper.updateCellBorderInsets(TableBorderHelper.java:287) at org.eclipse.birt.report.designer.internal.ui.layout.TableLayout.layout(TableLayout.java:146)
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/util/ModelUtil.java
* @param propDefn
	 *            definition of property
	 * @param value
	 *            value to clone
	 * @return new value
	 */
	public static Object copyValue( IPropertyDefn propDefn, Object value )
	{
		if ( value == null || propDefn == null )
			return null;
		switch ( propDefn.getTypeCode( ) )
		{
			case IPropertyType.STRUCT_TYPE :
				if ( propDefn.isList( ) )
					return ModelUtil.cloneStructList( (List) value );
				return ( (Structure) value ).copy( );
			case IPropertyType.ELEMENT_REF_TYPE :
			case IPropertyType.STRUCT_REF_TYPE :
				ReferenceValue refValue = (ReferenceValue) value;
				return refValue.copy( );
			case IPropertyType.LIST_TYPE :
				return clonePropertyList( (List) value );
			case IPropertyType.ELEMENT_TYPE :
			case IPropertyType.CONTENT_ELEMENT_TYPE :
				if ( propDefn.isList( ) )
					return cloneElementList( (List) value );
				return getCopy( (DesignElement) value );
		}
		return value;
	}