created an attachment (id=162379)
report design

description:
exception is thrown out when set "sort locale" and "sort strength" in chart.

build number:
2.6.0.v20100318-0630

steps to reproduce:
1. preview the attached report design.

expected result:
no exception.

actual result:
exception is thrown out.
error log:
chart (id = 9): 
- org/eclipse/birt/data/engine/core/dataexception
org/eclipse/birt/data/engine/core/dataexception 
org/eclipse/birt/data/engine/core/dataexception ( 1 time(s) )
detail : org.eclipse.birt.report.engine.api.engineexception: org/eclipse/birt/data/engine/core/dataexception
org/eclipse/birt/data/engine/core/dataexception
	at org.eclipse.birt.report.engine.executor.executioncontext.addexception(executioncontext.java:1215)
	at org.eclipse.birt.report.engine.executor.executioncontext.addexception(executioncontext.java:1179)
	at org.eclipse.birt.report.engine.internal.document.v4.extendeditemexecutor.executequery(extendeditemexecutor.java:267)
	at org.eclipse.birt.report.engine.internal.document.v4.extendeditemexecutor.doexecute(extendeditemexecutor.java:232)
	at org.eclipse.birt.report.engine.internal.document.v4.extendeditemexecutor.execute(extendeditemexecutor.java:181)
	at org.eclipse.birt.report.engine.internal.document.v4.containerexecutor.preparechildexecutor(containerexecutor.java:225)
	at org.eclipse.birt.report.engine.internal.document.v4.containerexecutor.hasnextchild(containerexecutor.java:110)
	at org.eclipse.birt.report.engine.internal.executor.wrap.wrappedreportitemexecutor.hasnextchild(wrappedreportitemexecutor.java:86)
	at org.eclipse.birt.report.engine.internal.executor.wrap.wrappedreportitemexecutor.hasnextchild(wrappedreportitemexecutor.java:86)
	at org.eclipse.birt.report.engine.api.impl.rendertask$reportexecutorwrapper.hasnextchild(rendertask.java:710)
	at org.eclipse.birt.report.engine.layout.html.htmlpagelm$1.hasnextchild(htmlpagelm.java:68)
	at org.eclipse.birt.report.engine.layout.html.htmlblockstackinglm.layoutnodes(htmlblockstackinglm.java:62)
	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.api.impl.rendertask$pagerangerender.render(rendertask.java:600)
	at org.eclipse.birt.report.engine.api.impl.rendertask.render(rendertask.java:221)
	at org.eclipse.birt.report.service.reportengineservice.renderreport(reportengineservice.java:1537)
	at org.eclipse.birt.report.service.birtviewerreportservice.getpage(birtviewerreportservice.java:204)
	at org.eclipse.birt.report.service.actionhandler.abstractgetpageactionhandler.doexecution(abstractgetpageactionhandler.java:238)
	at org.eclipse.birt.report.service.actionhandler.abstractgetpageactionhandler.__execute(abstractgetpageactionhandler.java:105)
	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.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.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.service(servletregistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.proxyservlet.processalias(proxyservlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.proxyservlet.service(proxyservlet.java:60)
	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:213)
	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: org/eclipse/birt/data/engine/core/dataexception
org/eclipse/birt/data/engine/core/dataexception
	at org.eclipse.birt.data.engine.impl.document.rdaggrutil.<init>(rdaggrutil.java:75)
	at org.eclipse.birt.data.engine.impl.document.util.exprresultset.prepare(exprresultset.java:105)
	at org.eclipse.birt.data.engine.impl.document.util.exprresultset.<init>(exprresultset.java:77)
	at org.eclipse.birt.data.engine.impl.document.rdload.loadexprresultset(rdload.java:114)
	at org.eclipse.birt.data.engine.impl.document.resultiterator.prepare(resultiterator.java:120)
	at org.eclipse.birt.data.engine.impl.document.resultiterator.<init>(resultiterator.java:95)
	at org.eclipse.birt.data.engine.impl.document.resultiterator.<init>(resultiterator.java:68)
	at org.eclipse.birt.data.engine.impl.document.resultiterator2.<init>(resultiterator2.java:43)
	at org.eclipse.birt.data.engine.impl.document.queryresults.getresultiterator(queryresults.java:275)
	at org.eclipse.birt.report.engine.data.dte.queryresultset.<init>(queryresultset.java:98)
	at org.eclipse.birt.report.engine.data.dte.datapresentationengine.doexecutequery(datapresentationengine.java:172)
	at org.eclipse.birt.report.engine.data.dte.abstractdataengine.execute(abstractdataengine.java:265)
	at org.eclipse.birt.report.engine.executor.executioncontext.executequery(executioncontext.java:1875)
	at org.eclipse.birt.report.engine.internal.document.v4.extendeditemexecutor.executequery(extendeditemexecutor.java:259)
	... 64 more
caused by: java.io.ioexception: org/eclipse/birt/data/engine/core/dataexception
	at org.eclipse.birt.core.util.ioutil.readobject(ioutil.java:627)
	at org.eclipse.birt.core.util.ioutil.readobject(ioutil.java:535)
	at org.eclipse.birt.data.engine.impl.document.rdaggrutil$rdaggrvalueholder.<init>(rdaggrutil.java:177)
	at org.eclipse.birt.data.engine.impl.document.rdaggrutil.<init>(rdaggrutil.java:60)
	... 77 more
caused by: java.lang.classnotfoundexception: org/eclipse/birt/data/engine/core/dataexception
	at java.lang.class.forname0(native method)
	at java.lang.class.forname(class.java:242)
	at org.eclipse.birt.core.util.ioutil$1.resolveclass(ioutil.java:619)
	at java.io.objectinputstream.readnonproxydesc(objectinputstream.java:1543)
	at java.io.objectinputstream.readclassdesc(objectinputstream.java:1465)
	at java.io.objectinputstream.readordinaryobject(objectinputstream.java:1698)
	at java.io.objectinputstream.readobject0(objectinputstream.java:1304)
	at java.io.objectinputstream.readobject(objectinputstream.java:349)
	at org.eclipse.birt.core.util.ioutil.readobject(ioutil.java:623)
	... 80 more
it is not caused by adding sort locale and sort strength. it caused by adding wrong aggregation function on category sort key. the bug still exists in previous code. this has been fixed in today's check-ins in other related bug.(#23432)
if the category sort key does not equal to category expression, unless the sort key equals to value series expression and value series has aggregation, otherwise it should not set default aggregation for sorting.
verified in build (2.6.0.v20100322-0630), closed.