Bug 139107 Birt viewer with no error messages response
My birt viewer is under tomcat 5.5 webapps. I have a report with report parameters, account and password, to connect to database. Everything is doing just fine with correct account and password. However, when the account/password is wrong, the viewer show up the report title and got no error message or data. I've tried the report at Eclipse. if the password is wrong, I can get error message something like "failed to get connection". And I also turn the viewer log to FINEST, the "failed to get connection" message exist in the log file. Don't know how to let the error message response to the browser, otherwise users got no idea is there errors or no data.
engine/org.eclipse.birt.report.engine.emitter.html/src/org/eclipse/birt/report/engine/emitter/html/HTMLReportEmitter.java
( HTMLTags.TAG_TR );
	}
	 void writeColumns( ITableContent table )
	{
		for ( int i = 0; i < table.getColumnCount( ); i++ )
		{
			IColumn column = table.getColumn( i );
			
			 isColumnHidden( column ) )
			{
				continue;
			}
			writer.openTag( HTMLTags.TAG_COL );
			setStyleName( column.getStyleClass( ) );
			 w
			StringBuffer styleBuffer = new StringBuffer( );
			lder.buildSize( styleBuffer, HTMLTags.ATTR_WIDTH,
					column.getW( ) );
			 isEmbeddable )
			{
				 o
				String styleName = column.getStyleClass( );
				 styleName != null )
				{
					IStyle style = report.findStyle( styleName );
					 style != null )
					{
						lder.buildStyle( styleBuffer, style, this );
					}
				}
			}
			ttribute( HTMLTags.ATTR_STYLE, styleBuffer.toString( ) );
			
			 I
			id = column.getInstanceID( );			
			 iid != null )
			{
				ttribute( "iid", iid.toString( ) );
			}
			
			writer.closeNoEndTag( );
		}
	}
	
	**
	 * Pushes the Boolean indicating whether or not the item is hidden according	 
	 * @param hidden
	 *
	public void push( boolean hidden )
	{		
		boolean isHidden = false;
		 !stack.empty( ) )
		{
			isHidden = ( (Boolean) stack.peek( ) ).booleanValue( );
		}
		 !isHidden )
		{
			isHidden = hidden;
		}
		stack.push( new Boolean( isHidden ) );		
	}
	
	**
	 * check whether to hide the column.
	 * @param column
	 * @return
	 *
	private boolean isColumnHidden( IColumn column )
	{
		String formats = column.getVisibleFormat( );
		 formats != null
				&& ( formats.indexOf( EngineIRConstants.FORMAT_TYPE_VIEWER ) >= 0 || formats
						.indexOf( BIRTConstants.BIRT_ALL_VALUE ) >= 0 ) )
		{
			return true;
		}
		return false;
	}
	
	**
	 * get the new colspan of the cell 
	 * by checking the relational columns.
	 * @param column
	 * @return
	 *
	private int getNewColSpan( ICellContent cell )
	{
		int columnNumber = cell.getColumn( );
		int colSpan = cell.getColSpan( );
		ITableContent table = getTableOfCell(cell);
		table == null)
		{
			return colSpan;
		}
		int newColSpa