Skip to content

Add test to reproduce the issue with NULL value argument.#147

Merged
rsim merged 2 commits into
masterfrom
bugfix/null_value_arguments
Jan 17, 2026
Merged

Add test to reproduce the issue with NULL value argument.#147
rsim merged 2 commits into
masterfrom
bugfix/null_value_arguments

Conversation

@jjustaments
Copy link
Copy Markdown
Collaborator

Mondrian patch:

diff --git a/mondrian/src/main/java/mondrian/olap/fun/JavaFunDef.java b/mondrian/src/main/java/mondrian/olap/fun/JavaFunDef.java
index 84cdcf2d1..0e6f0f514 100644
--- a/mondrian/src/main/java/mondrian/olap/fun/JavaFunDef.java
+++ b/mondrian/src/main/java/mondrian/olap/fun/JavaFunDef.java
@@ -343,7 +343,10 @@ public class JavaFunDef extends FunDefBase {
             Class<?>[] parameterTypes = null;
             for (int i = 0; i < args.length; i++) {
                 args[i] = calcs[i].evaluate(evaluator);
-                if (args[i] == null) {
+                // PATCH: Handle null values returned by nested function calls.
+                // The original code only checked for Java null, but MDX functions
+                // may return the sentinel nullValue object to represent missing data.
+                if (args[i] == null || args[i] == nullValue) {
                     return nullValue;
                 // PATCH: Cast BigDecimal to double if method has double parameter
                 } else if (args[i] instanceof java.math.BigDecimal) {

with nullValue argument handling in JavaFunDef
@rsim rsim merged commit 84c1cef into master Jan 17, 2026
6 checks passed
@rsim rsim deleted the bugfix/null_value_arguments branch January 17, 2026 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants