Bug 210156 logger.entering methods causing NullPointerExceptions
Build ID: M20071023-1652 Steps To Reproduce: Run reports setting the birtReportEngine.changeLogLevel to Level.Fine More information: Line 46 of org.eclipse.birt.data.engine.impl.aggregation.AggregateTable goes like this: logger.entering( AggregateTable.class.getName( ), "AggregateTable", null ); This throws a null pointer exception in java.util.Logger.entering(String sourceClass, String sourceMethod, Object params[]) (Sun's j2sdk1.4.2_16) The expectation may have been that this would call the method with just Object param (as opposed to Object[] params). The fix would be to use the entering(String sourceClass, String sourceMethod) instead. Other Files that have this issue: Searching with this regexp: logger.entering\([^,;]*[\n]*,[\n]*[^,;]*[\n]*,[\n]*[^,;]*null there seem to be a couple more: 1. org.eclipse.birt.data.engine.impl.DataEngineImpl.defineDataSet( IBaseDataSetDesign dataSet ) 2. org.eclipse.birt.data.engine.impl.DataEngineImpl.defineDataSource( IBaseDataSourceDesign dataSource ) 3.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/DataEngineImpl.java
private DataEngineContext context;
	private DataEngineSession session;
	private DataSourceManager dataSourceManager;
	
	
	private List shutdownListenerList = null;
	
	protected static Logger logger = Logger.getLogger( DataEngineImpl.class.getName( ) );
	/**
	 * Constructor to specify the DataEngine Context to use by the Data Engine
	 * for all related ReportQuery processing.
	 * 
	 * @param context
	 *            scope of Context: The global JavaScript scope shared by all
	 *            runtime components within a report session. If this parameter
	 *            is null, a new standard top level scope will be created and
	 *            used.
	 */
	public DataEngineImpl( DataEngineContext context )
	{
		assert context != null;
		
		logger.entering( DataEngineImpl.class.getName( ),
				"DataEngineImpl",
				context );
		
		this.context = context;
		DataEngineContextExt.getInstance( ).setTmpdir( context.getTmpdir( ) );
						
		dataSourceManager = new DataSourceManager( logger );