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
final Color clrText = (Color) _sxs.getColor( la.getCaption( )
				.getColor( ) );
		double dAngleInRadians = ( ( -dAngleInDegrees * Math.PI ) / 180.0 );
		final ITextMetrics itm = new SwtTextMetrics( _sxs, la );
		final double dFW = itm.getFullWidth( );
		final double dH = itm.getHeight( );
		final double dFH = itm.getFullHeight( );
		final int iLC = itm.getLineCount( );
		final Insets ins = la.getInsets( )
				.scaledInstance( _sxs.getDpiResolution( ) / 72d );
		dY += dFH;
		double dCosTheta = Math.cos( dAngleInRadians );
		double dSineTheta = Math.sin( dAngleInRadians );
		final double dFWt = Math.abs( dFW
				* dCosTheta
				+ dFH
				* Math.abs( dSineTheta ) );
		final double dFHt = Math.abs( dFH
				* dCosTheta
				+ dFW
				* Math.abs( dSineTheta ) );
		final int clipWs = (int) dFW;
		final int clipHs = (int) dFH;
		final int clipWt = (int) dFWt;
		final int clipHt = (int) dFHt;
		
		ImageData imgdtaS = new ImageData( clipWs, clipHs, 32, PALETTE_DATA );
		imgdtaS.transparentPixel = TRANSPARENT_COLOR;
		final Image imgSource = new Image( _sxs.getDevice( ), imgdtaS );
		for ( int i = 0; i < clipHs; i++ )