Bug 198345 Memory Leak problem in BIRT.
Memory Leak problem is detected in BIRT 2.2, most of which is supposed caused by unreleased rhino script objects. There are two indentified sources of problem at current stage, both of which are located in class birt.core.script.JavascriptEvalUtil 1.The class keeps a static scriptable object "sharedScope". Because it is a static variable it will not be destroyed until the jvm terminate. We should not use this static scriptable object any more, rather, we should ask client of this class to pass in a scope. 2.The class also keeps a static list "cachedCompiledScript". It is for speeding up the script evaluation process. We should keep this cache to per Data Engine rather than JVM-wise.
core/org.eclipse.birt.core/src/org/eclipse/birt/core/script/JavascriptEvalUtil.java
* @param cx
	 *            Javascript context. If null, current thread's context is used
	 * @param scope
	 *            Javascript scope to evaluate script in
	 * @param scriptText
	 *            text of Javascript expression
	 * @param source
	 *            descriptive text of script source (for error reporting)
	 * @param lineNo
	 *            line number of script in it source
	 * @return Evaluation result.
	 * @throws BirtException
	 *             If evaluation failed
	 */
	public static Object evaluateScript( Context cx, Scriptable scope,
			String scriptText, String source, int lineNo ) throws BirtException
	{
		return convertJavascriptValue( evaluateRawScript( cx,
				scope,
				scriptText,
				source,
				lineNo ) );
	}
	
	/**
	 * Gets a compiled script, using and updating the script cache if necessary
	 */
	protected static Script getCompiledScript( Context cx, Scriptable scope,
			String scriptText, String source, int lineNo )
	{