[Mondrian] RolapNativeSet NPE

Matt Campbell mcampbell at pentaho.com
Thu Mar 27 08:39:45 EDT 2014

Hi Hilario-
I was able to reproduce what you were seeing by setting ExpandNonNative=true.  Can you confirm you have that property set as well?  (I believe that's the default setting in biserver)

I've logged MONDRIAN-1964 for the issue.


From: mondrian-bounces at pentaho.org [mondrian-bounces at pentaho.org] On Behalf Of Hilario Fernandes [hilario.fernandes at cortex-intelligence.com]
Sent: Thursday, March 27, 2014 6:39 AM
To: Mondrian developer mailing list
Subject: Re: [Mondrian] RolapNativeSet NPE

Thank you for your reply.

I've tryed version 3.6.2 and 3.6.5 with the same results.

Should i fill in a bug report? Under which project should i do it? I've opened bugs in the wrong place in the past, just want to make sure i put it on the right place this time!

On Wed, Mar 26, 2014 at 6:33 PM, Luc Boudreau <lucboudreau at gmail.com<mailto:lucboudreau at gmail.com>> wrote:
Looks like a bug.

Which version is this? I vaguely remember seeing this before.


On Wed, Mar 26, 2014 at 2:30 PM, Hilario Fernandes <hilario.fernandes at cortex-intelligence.com<mailto:hilario.fernandes at cortex-intelligence.com>> wrote:
Hi everyone,

I'm implementing a system that creates mdx queries and passes these to Mondrian to be executed. During my tests I have found a problem when using mondrian.native.crossjoin.enable=true.

If I try to do a query such as this:

NON EMPTY {[Measures].[Price_SUM]} ON COLUMNS,
NON EMPTY CrossJoin({Filter({[Brand].[Brand].Members}, [Brand].CurrentMember.Name MATCHES '(?i).*zzzzz.*')}, {[Fuel].[Fuel].Members}) ON ROWS
FROM [Cars]

Where we have a CrossJoin of a Filter over Brand members with the fuel members. The problem is that whenever the first argument of the CrossJoin is a filter that returns empty (no values matched) i get a NullPointerException from mondrian.

at mondrian.rolap.RolapNativeSet$SetEvaluator.execute(RolapNativeSet.java:186)
at mondrian.olap.fun.CrossJoinFunDef$CrossJoinIterCalc.evaluateIterable(CrossJoinFunDef.java:177)
at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:875)
at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:700)
at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:656)
at mondrian.rolap.RolapResult.<init>(RolapResult.java:288)
at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:671)
at mondrian.rolap.RolapConnection.access$000(RolapConnection.java:51)
at mondrian.rolap.RolapConnection$1.call(RolapConnection.java:622)
at mondrian.rolap.RolapConnection$1.call(RolapConnection.java:621)

Anyone has an idea of the problem?

Hilario Fernandes

Mondrian mailing list
Mondrian at pentaho.org<mailto:Mondrian at pentaho.org>

Mondrian mailing list
Mondrian at pentaho.org<mailto:Mondrian at pentaho.org>

Hilario Fernandes

More information about the Mondrian mailing list