You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
+44Lines changed: 44 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -751,6 +751,50 @@ public void testStartWorkflow_fakeTask_usingLocalParamOverWriteByVarPool() {
751
751
masterContainer.assertAllResourceReleased();
752
752
}
753
753
754
+
@Test
755
+
@DisplayName("Test start a workflow which using null key params")
Copy file name to clipboardExpand all lines: dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/expand/CuringParamsServiceImpl.java
+9-63Lines changed: 9 additions & 63 deletions
Original file line number
Diff line number
Diff line change
@@ -169,35 +169,16 @@ public Map<String, Property> parseWorkflowFatherParam(@Nullable Map<String, Stri
169
169
* <li>Values are non-null {@link Property} objects</li>
170
170
* </ul>
171
171
*
172
-
* <p><strong>Parameter Precedence (highest to lowest):</strong>
173
-
* <ol>
174
-
* <li>Business/scheduling time parameters (e.g., {@code ${system.datetime}})</li>
175
-
* <li>Command-line or runtime complement parameters</li>
176
-
* <li>Task-local parameters</li>
177
-
* <li>Workflow global parameters (solidified at instance creation)</li>
178
-
* <li>Project-level parameters</li>
179
-
* <li>Built-in system parameters (e.g., {@code ${task.id}})</li>
180
-
* </ol>
172
+
* <p> The priority of the parameters is as follows:
173
+
* <p> varpool > command parameters > local parameters > global parameters > project parameters > built-in parameters
174
+
* todo: Use TaskRuntimeParams to represent this.
181
175
*
182
-
* <p><strong>Important Notes:</strong>
183
-
* <ul>
184
-
* <li>All parameter sources are sanitized via {@link #safePutAll(Map, Map)} to prevent {@code null}
185
-
* or blank keys, which would cause JSON serialization failures (e.g., Jackson's
186
-
* "Null key for a Map not allowed in JSON").</li>
187
-
* <li>Placeholders (e.g., {@code "${var}"}) in parameter values are resolved after all sources
188
-
* are merged, using the consolidated parameter map. Global parameters are already
189
-
* <em>solidified</em> (fully resolved at workflow instance creation), so no recursive
190
-
* placeholder expansion is required.</li>
191
-
* <li>{@code VarPool} values (from upstream tasks) only override parameters marked as
192
-
* {@link Direct#IN}; output or constant parameters remain unchanged.</li>
193
-
* </ul>
194
-
*
195
-
* @param taskInstance the current task instance (must not be null)
196
-
* @param parameters the parsed task-specific parameters (must not be null)
197
-
* @param workflowInstance the parent workflow instance (must not be null)
198
-
* @param projectName name of the project containing the workflow
199
-
* @param workflowDefinitionName name of the workflow definition
200
-
* @return a safe, fully resolved map of parameter name to {@link Property}, ready for task execution
0 commit comments