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/executor/ExecutionContext.java
/**
	 * A stack of handle objects, with the current one on the top
	 */
	private Stack reportHandles = new Stack( );
	/**
	 * total page
	 */
	private long totalPage;
	/**
	 * current page number
	 */
	private long pageNumber;
	/**
	 * A list of script errors found in onPrepare. These will be added to the
	 * IReportContent, when one is available
	 * 
	 */
	private List onPrepareErrors = new ArrayList( );
	/**
	 * utilities used in the report execution.
	 */
	private HashMap stringFormatters = new HashMap( );
	private HashMap numberFormatters = new HashMap( );
	private HashMap dateFormatters = new HashMap( );
	
	private Map classLoaderCache = new HashMap( );
	/**
	 * create a new context. Call close to finish using the execution context
	 */
	public ExecutionContext( int taskID )