[Mondrian] Partial rollup policy not working? Testcase included
Pedro Alves
pedro at neraka.no-ip.org
Sat Jul 12 20:30:21 CDT 2008
Hello everyone.
With latest mondrian (3.0.3.11016) I can't make rollupPolicy rule work - at
least not as I expected. Mondrian calculates the result fine but jpivot
does not render the results.
Test:
Add this rule to the steel-wheels example (I don't want a topLevel, but I've tried with it and still can't make it work):
<Role name="default">
<SchemaGrant access="none">
<CubeGrant cube="SteelWheelsSales" access="all">
<HierarchyGrant hierarchy="[Markets]" access="custom" rollupPolicy="partial" >
<MemberGrant member="[Markets].[All Markets]" access="all"/>
<MemberGrant member="[Markets].[All Markets].[NA].[Canada]" access="all"/>
</HierarchyGrant>
</CubeGrant>
</SchemaGrant>
</Role>
And then try in jpivot this mdx:
select NON EMPTY {[Measures].[Quantity]} ON COLUMNS,
NON EMPTY [Markets].[All Markets] ON ROWS
from [SteelWheelsSales]
Here's the stacktrace:
2008-07-13 02:27:04,475 ERROR [com.tonbeller.wcf.component.RendererTag] trouble rendering table01
java.lang.NullPointerException
at mondrian.olap.RoleImpl$HierarchyAccessImpl.getAccess(RoleImpl.java:490)
at mondrian.rolap.RolapHierarchy$LimitedRollupSubstitutingMemberReader.substitute(RolapHierarchy.java:936)
at mondrian.rolap.SubstitutingMemberReader.getMemberParent(SubstitutingMemberReader.java:183)
at mondrian.rolap.RolapSchemaReader.getMemberParent(RolapSchemaReader.java:111)
at mondrian.olap.DelegatingSchemaReader.getMemberParent(DelegatingSchemaReader.java:52)
at com.tonbeller.jpivot.mondrian.MondrianMember.getRootDistance(MondrianMember.java:90)
at com.tonbeller.jpivot.table.span.SpanCalc.calcIndent(SpanCalc.java:418)
at com.tonbeller.jpivot.table.span.SpanCalc.initialize(SpanCalc.java:92)
at com.tonbeller.jpivot.table.span.SpanCalc.createPositionHeader(SpanCalc.java:245)
at com.tonbeller.jpivot.table.RowAxisBuilderImpl.initialize(RowAxisBuilderImpl.java:130)
at com.tonbeller.jpivot.table.AxisBuilderSupport.startBuild(AxisBuilderSupport.java:229)
at com.tonbeller.jpivot.table.TableComponent.startBuild(TableComponent.java:192)
at com.tonbeller.jpivot.table.TableComponent.render2(TableComponent.java:259)
at com.tonbeller.jpivot.table.TableComponent.render(TableComponent.java:235)
at com.tonbeller.wcf.component.RendererTag.doEndTag(RendererTag.java:137)
at org.apache.jsp.jsp.Pivot_jsp._jspx_meth_wcf_005frender_005f8(Pivot_jsp.java:3068)
at org.apache.jsp.jsp.Pivot_jsp._jspService(Pivot_jsp.java:1738)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.switchuser.SwitchUserProcessingFilter.doFilter(SwitchUserProcessingFilter.java:341)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at com.pentaho.security.SecurityStartupFilter.doFilter(SecurityStartupFilter.java:76)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at com.pentaho.security.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:164)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at com.pentaho.security.HttpSessionReuseDetectionFilter.doFilter(HttpSessionReuseDetectionFilter.java:130)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
--
Pedro Alves
More information about the Mondrian
mailing list