Github user zentol commented on a diff in the pull request:
https://github.com/apache/flink/pull/6330#discussion_r203303832
--- Diff:
flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JarRunHandler.java
---
@@ -138,12 +154,22 @@ public JarRunHandler(
});
}
- private static SavepointRestoreSettings getSavepointRestoreSettings(
- final @Nonnull HandlerRequest<EmptyRequestBody,
JarRunMessageParameters> request)
+ private SavepointRestoreSettings getSavepointRestoreSettings(
+ final @Nonnull HandlerRequest<JarRunRequestBody,
JarRunMessageParameters> request)
throws RestHandlerException {
- final boolean allowNonRestoredState =
getQueryParameter(request, AllowNonRestoredStateQueryParameter.class, false);
- final String savepointPath = getQueryParameter(request,
SavepointPathQueryParameter.class);
+ final JarRunRequestBody requestBody = request.getRequestBody();
+
+ final boolean allowNonRestoredState =
fromRequestBodyOrQueryParameter(
+ requestBody.getAllowNonRestoredState(),
+ () -> getQueryParameter(request,
AllowNonRestoredStateQueryParameter.class),
+ false,
+ log);
+ final String savepointPath = fromRequestBodyOrQueryParameter(
--- End diff --
This could result in unexpected NullPointerExceptions when retrieving a
primitive, like in the following example:
```
fromRequestBodyOrQueryParameter(
requestBody.getParallelism(),
() -> getQueryParameter(request,
ParallelismQueryParameter.class)
log);
```
The explicit default argument prevents that from happening.
---