Bug 203942 [Regression] Exception is thrown out if chart interactivity is to drill through to a report with parameter [13]
Description: Exception is thrown out if chart interactivity is to drill through to a report with parameter. Build number: 2.2.0.v20070919-0900 Steps to reproduce: 1. New a report a with a prameter p1. 2. New a report b with a chart, set chart value series interactivity to drill through to report a and select report parameter p1, click OK. Expected result: No exception. Actual result: Exception is thrown out. Error log: java.lang.NullPointerException at org.eclipse.birt.report.model.command.PropertyListRecord.<init>(PropertyListRecord.java:153) at org.eclipse.birt.report.model.command.ComplexPropertyCommand.constructStructureRecord(ComplexPropertyCommand.java:755) at org.eclipse.birt.report.model.command.ComplexPropertyCommand.addItem(ComplexPropertyCommand.java:130) at org.eclipse.birt.report.model.command.ComplexPropertyCommand.addItem(ComplexPropertyCommand.java:164) at org.eclipse.birt.report.model.api.SimpleValueHandle.addItem(SimpleValueHandle.java:533) at org.eclipse.birt.report.model.api.ActionHandle.addParamBinding(ActionHandle.java:224) at org.eclipse.birt.report.designer.ui.dialogs.HyperlinkBuilder.okPressed(HyperlinkBuilder.java:1055) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:464) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:616) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at org.eclipse.birt.report.designer.internal.ui.dialogs.BaseDialog.open(BaseDialog.java:109) at org.eclipse.birt.chart.reportitem.ui.ChartReportItemBuilderImpl.invoke(ChartReportItemBuilderImpl.java:454) at org.eclipse.birt.chart.ui.swt.composites.TriggerDataComposite.widgetSelected(TriggerDataComposite.java:906) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at org.eclipse.birt.core.ui.frameworks.taskwizard.WizardBase.open(WizardBase.java:102) at org.eclipse.birt.chart.ui.swt.wizard.ChartWizard.open(ChartWizard.java:198) at org.eclipse.birt.chart.reportitem.ui.ChartReportItemBuilderImpl.open(ChartReportItemBuilderImpl.java:183) at org.eclipse.birt.report.designer.internal.ui.extension.ExtendedEditPart.performDirectEdit(ExtendedEditPart.java:153) at org.eclipse.birt.report.designer.internal.ui.editors.schematic.editparts.ReportElementEditPart.performRequest(ReportElementEditPart.java:140) at org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:187) at org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:131) at org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:944) at org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:501) at org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:204) at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java:285) at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:508) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:182) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443) at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/api/ModuleUtil.java
{
		return deserializeAction( strData, null );
	}
	/**
	 * Deserialize a string into an ActionHandle, notice that the handle is
	 * faked, the action is not in the design tree, the operation to the handle
	 * is not able to be undoned.
	 * 
	 * @param strData
	 *            a string represent an action.
	 * @param element
	 * @return a handle to the action.
	 * @throws DesignFileException
	 *             if the exception occur when interpret the stream data.
	 */
	public static ActionHandle deserializeAction( String strData,
			DesignElementHandle element ) throws DesignFileException
	{
		InputStream is = null;
		String streamToOpen = StringUtil.trimString( strData );
		if ( streamToOpen != null )
		{
			try
			{
				is = new ByteArrayInputStream( streamToOpen
						.getBytes( UnicodeUtil.SIGNATURE_UTF_8 ) );
			}
			catch ( UnsupportedEncodingException e )
			{
				assert false;