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.


---

Reply via email to