Bug 134651 the joint data set can not be created
Description: the joint data set can not be created. Steps to reproduce: 1. new a report 2. new a dataset 3. new a jointdataset. Actual result: The jointdataset can not be built. rg.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) at org.eclipse.swt.SWT.error(SWT.java:3349) at org.eclipse.swt.SWT.error(SWT.java:3272) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:126) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3264) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2910) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1899) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:417) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:99) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952) Caused by: java.lang.NullPointerException at org.eclipse.birt.data.engine.impl.ResultMetaData.getColumnCount(ResultMetaData.java:56) at org.eclipse.birt.report.designer.internal.ui.util.DataSetManager.execute(DataSetManager.java:326) at org.eclipse.birt.report.designer.internal.ui.util.DataSetManager.getColumns(DataSetManager.java:260) at org.eclipse.birt.report.designer.internal.ui.util.DataSetManager.getColumns(DataSetManager.java:196) at org.eclipse.birt.report.designer.internal.ui.util.DataSetManager.refresh(DataSetManager.java:160) at org.eclipse.birt.report.designer.internal.ui.views.data.DataViewTreeViewerPage$5.run(DataViewTreeViewerPage.java:490) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123) ... 20 more
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/PreparedJointDataSourceQuery.java
populator = JointDataSetPopulatorFactory.getBinaryTreeDataSetPopulator( left.getOdiResult( ),
				right.getOdiResult( ),
				meta,
				matcher,
				dataSet.getJoinType( ) );
	}
	/**
	 * Return an instance of JointResultMeta.
	 * 
	 * @param left
	 * @param right
	 * @return
	 * @throws DataException
	 */
	private JointResultMetadata getJointResultMetadata( ResultIterator left,
			ResultIterator right ) throws DataException
	{
		String leftPrefix = dataSet.getLeftDataSetDesignName( );
		String rightPrefix = dataSet.getRightDataSetDesignName( );
		if ( leftPrefix.equals( rightPrefix ) )
		{
			leftPrefix = leftPrefix + "1";
			rightPrefix = rightPrefix + "2";
		}
		leftPrefix = leftPrefix + COLUMN_NAME_SPLITTER;
		rightPrefix = rightPrefix + COLUMN_NAME_SPLITTER;
		JointResultMetadata meta = populatorJointResultMetadata( left.getOdiResult( )
				.getResultClass( ),
				leftPrefix,
				right.getOdiResult( ).getResultClass( ),