Bug 194549 Memory leak in chart device renderers
After memory analysis for Chart code, it indicates java.awt.Font objects are not garbage collected. Investigating the renderer code, Graphics2D objects in IDisplayServer and IDeviceRenderer are not disposed after chart rendering finished. Need to invoke IDeviceRenderer.dispose() after ChartReportItemPresentationImpl being finished, and dispose all required resources in that method, including IDisplayServer and anything else.
chart/org.eclipse.birt.chart.device.swt/src/org/eclipse/birt/chart/device/swt/SwtTextRenderer.java
* Use this optimized routine for rendering horizontal ONLY text
	 * 
	 * @param gc
	 * @param la
	 * @param lo
	 */
	private final void renderHorizontalText( GC gc, Label la, double dX,
			double dY )
	{
		final FontDefinition fd = la.getCaption( ).getFont( );
		final Color clrText = (Color) _sxs.getColor( la.getCaption( )
				.getColor( ) );
		final ITextMetrics itm = new SwtTextMetrics( _sxs, la );
		final double dFW = itm.getFullWidth( );
		final double dH = itm.getHeight( );
		final double dFH = itm.getFullHeight( );
		double dXOffset = 0;
		double dW = 0;
		final Insets ins = la.getInsets( )
				.scaledInstance( _sxs.getDpiResolution( ) / 72d );
		final HorizontalAlignment ha = la.getCaption( )
				.getFont( )
				.getAlignment( )
				.getHorizontalAlignment( );
		final boolean bRightAligned = ha.getValue( ) == HorizontalAlignment.RIGHT;
		final boolean bCenterAligned = ha.getValue( ) == HorizontalAlignment.CENTER;
		final Rectangle r;
		Object tr = null;