Bug 123523 Previewing a scripted data set mapped to a java event handler throws NPE
When previewing a scripted data set we try to get a class loader from the ExecutionContext. (See ScriptExecutor.getClassUsingCustomClassPath). The context will be null in this case. The reason for using the context is to use cached class loaders when possible. Need to use some other mechanism to get the class loader if the context is null. We can either provide an external map to use as cache, or not bother with caching at all.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/script/eventhandler/IScriptedDataSetEventHandler.java
{
	/**
	 * Handle the open event
	 */
	void open( IDataSetInstance dataSet );
	/**
	 * Handle the fetch event. Implementation should call methods on 
	 * the row object to set data of the current row being fetched.
	 * @return true if current data row has been populated. 
	 * false if the last call to fetch has returned the last
	 * data row, and no more data is available.   
	 */
	boolean fetch( IDataSetInstance dataSet, IUpdatableDataSetRow row );
	/**
	 * Handle the close event
	 */
	void close( IDataSetInstance dataSet );
	
	/**
	 * Method for Script Data Set to return dynamically generated data set 
	 * metadata. This method is called  before the open event 
	 * is fired. If the data set implementation has dynamically generated metadata,
	 * it should call the addColumn method on the metaData object to add all
	 * its column definition, then return true. If the data set implementation
	 * uses the static metadata defined in the data set design , it should
	 * return false.
	 */
	boolean describe( IDataSetInstance dataSet, IScriptedDataSetMetaData metaData);
}