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.
---