Bug 198070 ArrayIndexOutOfBoundsException throws out for grid with ZERO columns
The exception stack is: java.lang.ArrayIndexOutOfBoundsException: -1 at org.eclipse.birt.report.engine.emitter.excel.layout.LayoutUtil.createTable(LayoutUtil.java:96) at org.eclipse.birt.report.engine.emitter.excel.ExcelEmitter.startTable(ExcelEmitter.java:128) at org.eclipse.birt.report.engine.layout.html.HTMLTableLayoutNoNestEmitter.startTable(HTMLTableLayoutNoNestEmitter.java:72) at org.eclipse.birt.report.engine.emitter.ContentEmitterUtil$StartContentVisitor.visitTable(ContentEmitterUtil.java:82) at org.eclipse.birt.report.engine.content.impl.TableContent.accept(TableContent.java:87) at org.eclipse.birt.report.engine.emitter.ContentEmitterUtil$StartContentVisitor.visit(ContentEmitterUtil.java:55) at org.eclipse.birt.report.engine.emitter.ContentEmitterUtil.startContent(ContentEmitterUtil.java:42) at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.startContent(HTMLAbstractLM.java:113) at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:84) at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layoutChildren(HTMLPageLM.java:142) For an empty GRID, the BIRT will create a table content with ZERO columns, XLS should handle it gracefully.
engine/org.eclipse.birt.report.engine.emitter.prototype.excel/src/org/eclipse/birt/report/engine/emitter/excel/layout/LayoutUtil.java
col[i] = aveWidth;
				}
				tmp += col[i];
			}
		}
		
		col[col.length - 1] += width - tmp;
		return col;
	}
	
	public static TableInfo createTable(int col, int width)
	{
		return new DefaultTableInfo(col, width);
	}	
	
	public static TableInfo createTable(ITableContent table, int width)
	{
		int colcount = table.getColumnCount( );
		int[] index = new int[colcount];
		int know = 0;
		List unmount = new ArrayList();
		
		for(int i = 0; i < colcount; i++)
		{
			DimensionType value = table.getColumn( i ).getWidth( );  
			if( value == null)
			{
				unmount.add( new Integer(i) );
			}
			else