description:
exception is thrown out when preview a report with a crosstab binding with no
cubes. it's regression of bug 210064

build number:
2.5.2.v20100208

steps to reproduce:
1. new a report with a crosstab binding to no cubes.
2. preview.

expected result:
no exception.

actual result:
exception is thrown out

error log:
org.eclipse.birt.report.engine.api.engineexception: fail to load cube "null" from document. the document object does not exist.
   at org.eclipse.birt.report.engine.executor.executormanager$executorcontext.executequery(executormanager.java:449)
   at org.eclipse.birt.report.item.crosstab.core.re.executor.basecrosstabexecutor.executequery(basecrosstabexecutor.java:114)
   at org.eclipse.birt.report.item.crosstab.core.re.executor.crosstabreportitemexecutor.execute(crosstabreportitemexecutor.java:102)
   at org.eclipse.birt.report.engine.executor.extendeditemexecutor.execute(extendeditemexecutor.java:62)
   at org.eclipse.birt.report.engine.internal.executor.wrap.wrappedreportitemexecutor.execute(wrappedreportitemexecutor.java:46)
   at org.eclipse.birt.report.engine.internal.executor.emitter.reportitememitterexecutor.execute(reportitememitterexecutor.java:46)
   at org.eclipse.birt.report.engine.internal.executor.dup.suppressduplicateitemexecutor.execute(suppressduplicateitemexecutor.java:43)
   at org.eclipse.birt.report.engine.layout.html.htmlblockstackinglm.layoutnodes(htmlblockstackinglm.java:65)
   at org.eclipse.birt.report.engine.layout.html.htmlpagelm.layout(htmlpagelm.java:90)
   at org.eclipse.birt.report.engine.layout.html.htmlreportlayoutengine.layout(htmlreportlayoutengine.java:99)
   at org.eclipse.birt.report.engine.presentation.reportdocumentbuilder.build(reportdocumentbuilder.java:258)
   at org.eclipse.birt.report.engine.api.impl.runtask.dorun(runtask.java:252)
   at org.eclipse.birt.report.engine.api.impl.runtask.run(runtask.java:85)
   at org.eclipse.birt.report.service.reportengineservice.runreport(reportengineservice.java:1307)
   at org.eclipse.birt.report.service.birtviewerreportservice.runreport(birtviewerreportservice.java:158)
   at org.eclipse.birt.report.service.actionhandler.birtrunreportactionhandler.__execute(birtrunreportactionhandler.java:81)
   at org.eclipse.birt.report.service.actionhandler.birtgetpageactionhandler.__checkdocumentexists(birtgetpageactionhandler.java:58)
   at org.eclipse.birt.report.service.actionhandler.abstractgetpageactionhandler.prepareparameters(abstractgetpageactionhandler.java:119)
   at org.eclipse.birt.report.service.actionhandler.abstractgetpageactionhandler.__execute(abstractgetpageactionhandler.java:104)
   at org.eclipse.birt.report.service.actionhandler.abstractbaseactionhandler.execute(abstractbaseactionhandler.java:90)
   at org.eclipse.birt.report.soapengine.processor.abstractbasedocumentprocessor.__executeaction(abstractbasedocumentprocessor.java:47)
   at org.eclipse.birt.report.soapengine.processor.abstractbasecomponentprocessor.executeaction(abstractbasecomponentprocessor.java:143)
   at org.eclipse.birt.report.soapengine.processor.birtdocumentprocessor.handlegetpage(birtdocumentprocessor.java:87)
   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.birt.report.soapengine.processor.abstractbasecomponentprocessor.process(abstractbasecomponentprocessor.java:112)
   at org.eclipse.birt.report.soapengine.endpoint.birtsoapbindingimpl.getupdatedobjects(birtsoapbindingimpl.java:66)
   at sun.reflect.generatedmethodaccessor42.invoke(unknown source)
   at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)
   at java.lang.reflect.method.invoke(method.java:585)
   at org.apache.axis.providers.java.rpcprovider.invokemethod(rpcprovider.java:397)
   at org.apache.axis.providers.java.rpcprovider.processmessage(rpcprovider.java:186)
   at org.apache.axis.providers.java.javaprovider.invoke(javaprovider.java:323)
   at org.apache.axis.strategies.invocationstrategy.visit(invocationstrategy.java:32)
   at org.apache.axis.simplechain.dovisiting(simplechain.java:118)
   at org.apache.axis.simplechain.invoke(simplechain.java:83)
   at org.apache.axis.handlers.soap.soapservice.invoke(soapservice.java:454)
   at org.apache.axis.server.axisserver.invoke(axisserver.java:281)
   at org.apache.axis.transport.http.axisservlet.dopost(axisservlet.java:699)
   at org.eclipse.birt.report.servlet.birtsoapmessagedispatcherservlet.dopost(birtsoapmessagedispatcherservlet.java:265)
   at javax.servlet.http.httpservlet.service(httpservlet.java:727)
   at org.apache.axis.transport.http.axisservletbase.service(axisservletbase.java:327)
   at javax.servlet.http.httpservlet.service(httpservlet.java:820)
   at org.eclipse.birt.report.servlet.birtsoapmessagedispatcherservlet.service(birtsoapmessagedispatcherservlet.java:122)
   at org.eclipse.equinox.http.registry.internal.servletmanager$servletwrapper.service(servletmanager.java:180)
   at org.eclipse.equinox.http.servlet.internal.servletregistration.handlerequest(servletregistration.java:90)
   at org.eclipse.equinox.http.servlet.internal.proxyservlet.processalias(proxyservlet.java:111)
   at org.eclipse.equinox.http.servlet.internal.proxyservlet.service(proxyservlet.java:59)
   at javax.servlet.http.httpservlet.service(httpservlet.java:820)
   at org.eclipse.equinox.http.jetty.internal.httpservermanager$internalhttpserviceservlet.service(httpservermanager.java:318)
   at org.mortbay.jetty.servlet.servletholder.handle(servletholder.java:502)
   at org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:380)
   at org.mortbay.jetty.servlet.sessionhandler.handle(sessionhandler.java:181)
   at org.mortbay.jetty.handler.contexthandler.handle(contexthandler.java:765)
   at org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152)
   at org.mortbay.jetty.server.handle(server.java:324)
   at org.mortbay.jetty.httpconnection.handlerequest(httpconnection.java:535)
   at org.mortbay.jetty.httpconnection$requesthandler.content(httpconnection.java:880)
   at org.mortbay.jetty.httpparser.parsenext(httpparser.java:748)
   at org.mortbay.jetty.httpparser.parseavailable(httpparser.java:219)
   at org.mortbay.jetty.httpconnection.handle(httpconnection.java:404)
   at org.mortbay.io.nio.selectchannelendpoint.run(selectchannelendpoint.java:409)
   at org.mortbay.thread.queuedthreadpool$poolthread.run(queuedthreadpool.java:520)
caused by: org.eclipse.birt.data.engine.core.dataexception: fail to load cube "null" from document. the document object does not exist.
   at org.eclipse.birt.data.engine.olap.data.impl.cube.load(cube.java:133)
   at org.eclipse.birt.data.engine.olap.data.api.cubequeryexecutorhelper.loadcube(cubequeryexecutorhelper.java:154)
   at org.eclipse.birt.data.engine.olap.impl.query.cubequeryresults.loadcube(cubequeryresults.java:239)
   at org.eclipse.birt.data.engine.olap.impl.query.cubequeryresults.getcubecursor(cubequeryresults.java:94)
   at org.eclipse.birt.report.engine.data.dte.cuberesultset.(cuberesultset.java:78)
   at org.eclipse.birt.report.engine.data.dte.dtedataengine.doexecutecube(dtedataengine.java:224)
   at org.eclipse.birt.report.engine.data.dte.datagenerationengine.doexecutecube(datagenerationengine.java:87)
   at org.eclipse.birt.report.engine.data.dte.abstractdataengine.execute(abstractdataengine.java:270)
   at org.eclipse.birt.report.engine.executor.executormanager$executorcontext.executequery(executormanager.java:439)
... 64 more
a cross table must be able to a cube. this error can be found in 'xml source' tab or 'problem' view.  this is not a bug.
closed the bug