Bug 190984 xtab filter/sort did not work properly when using a joined data set
steps to reproduce: - use the attached report - try to add a filter/sort on xtab, e.g. using country column - notice that the value list is unavailable - try to enter the filter/sort condition manually, e.g. "USA" - preview in layout expected behavior: - when use joined data set, the value list should be available - report should be previewed properly actual behavior: - the value list was unavailable - NPE was thrown out when preview the report with the filter/sort condition being completed manually
data/org.eclipse.birt.report.data.adapter/src/org/eclipse/birt/report/data/adapter/impl/CubeQueryUtil.java
DimLevel target = OlapExpressionUtil.getTargetDimLevel( targetLevel );
			TabularHierarchyHandle hierHandle = (TabularHierarchyHandle) ( cubeHandle.getDimension( target.getDimensionName( ) ).getContent( TabularDimensionHandle.HIERARCHIES_PROP,
					0 ) );
			this.session.defineDataSource( this.session.getModelAdaptor( )
					.adaptDataSource( hierHandle.getDataSet( ).getDataSource( ) ) );
			this.session.defineDataSet( this.session.getModelAdaptor( )
					.adaptDataSet( hierHandle.getDataSet( ) ) );
			Map levelValueMap = new HashMap( );
			if ( higherLevelDefns != null )
			{
				for ( int i = 0; i < higherLevelDefns.length; i++ )
				{
					if ( target.getDimensionName( )
							.equals( higherLevelDefns[i].getHierarchy( )
									.getDimension( )
									.getName( ) ) )
					{
						levelValueMap.put( higherLevelDefns[i].getName( ),
								values[i] );
					}
				}
			}
			DataSetIterator it = new DataSetIterator( this.session,
					hierHandle );
			return new MemberValueIterator( it, levelValueMap, target.getLevelName( ));
		}
		catch ( BirtException e )
		{
			throw new AdapterException( e.getLocalizedMessage( ), e );
		}