Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/6330#discussion_r203358033 --- 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 -- Wouldn't something like this work: ``` private static <T> T fromRequestBodyOrQueryParameter( T requestValue, SupplierWithException<T, RestHandlerException> queryParameterExtractor, Logger log) throws RestHandlerException { return fromRequestBodyOrQueryParameter(requestValue, queryParameterExtractor, null, log); } ```
---