Bug 201038 The joint dataset from library can not be used and exception occurs when preview in dataset[07]
Description: The joint dataset from library can not be used and exception occurs when preview in dataset[07] Build number: 2.2.1.v20070824-0630 Steps to reproduce: 1, New a library and create two datasets ds1 and ds2 2, Creata a joint dataset ds3 using ds1 and ds2 3, Publish the library 4, New a report and using the Joint dataset and preview in joint dataset Expected result: The preview should be successful Actual result: Exception occurs Error log: java.lang.ClassCastException: org.eclipse.birt.report.model.metadata.ElementRefValue at org.eclipse.birt.report.model.command.AbstractPropertyCommand.setupStructureContext(AbstractPropertyCommand.java:534) at org.eclipse.birt.report.model.command.AbstractPropertyCommand.makeLocalCompositeValue(AbstractPropertyCommand.java:440) at org.eclipse.birt.report.model.command.ComplexPropertyCommand.doRemoveItem(ComplexPropertyCommand.java:456) at org.eclipse.birt.report.model.command.ComplexPropertyCommand.removeItem(ComplexPropertyCommand.java:393) at org.eclipse.birt.report.model.api.PropertyHandle.removeItem(PropertyHandle.java:317) at org.eclipse.birt.report.model.api.SimpleValueHandle.removeItem(SimpleValueHandle.java:453) at org.eclipse.birt.report.model.api.JointDataSetHandle.removeDataSet(JointDataSetHandle.java:128) at org.eclipse.birt.report.designer.data.ui.dataset.JointDataSetPage.modifyJointCondition(JointDataSetPage.java:989) at org.eclipse.birt.report.designer.data.ui.dataset.JointDataSetPage.canLeave(JointDataSetPage.java:963) at org.eclipse.birt.report.designer.data.ui.property.AbstractPropertyDialog.showPage(AbstractPropertyDialog.java:554) at org.eclipse.birt.report.designer.data.ui.property.AbstractPropertyDialog.showSelectionPage(AbstractPropertyDialog.java:467) at org.eclipse.birt.report.designer.data.ui.dataset.DataSetEditor.showSelectionPage(DataSetEditor.java:820) at org.eclipse.birt.report.designer.data.ui.property.AbstractPropertyDialog$3.run(AbstractPropertyDialog.java:425)
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/command/AbstractPropertyCommand.java
* holds the reference. There are two algorithms to handle this reference
	 * property, which can be selected by <code>unresolveReference</code>. If
	 * <code>unresolveReference</code> is <code>true</code>, the reference
	 * property is unresolved. Otherwise, it's cleared.
	 * 
	 * @param referred
	 *            the element to be deleted
	 * @param unresolveReference
	 *            the flag indicating the reference property should be
	 *            unresolved, instead of cleared
	 * @throws SemanticException
	 *             if an error occurs, but the operation should not fail under
	 *             normal conditions
	 * 
	 * @see #adjustReferredClients(DesignElement)
	 */
	protected void adjustReferenceClients( Structure referred,
			MemberRef memberRef )
	{
		IStructureDefn structDefn = referred.getDefn( );
		Iterator memberDefns = structDefn.getPropertyIterator( );
		while ( memberDefns.hasNext( ) )
		{
			StructPropertyDefn memberDefn = (StructPropertyDefn) memberDefns
					.next( );
			if ( memberDefn.getTypeCode( ) != IPropertyType.ELEMENT_REF_TYPE )
				continue;
			ReferenceValue refValue = (ReferenceValue) referred
					.getLocalProperty( module, memberDefn );
			if ( refValue == null || !refValue.isResolved( ) )