[ 
https://issues.apache.org/jira/browse/FLINK-10663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16662174#comment-16662174
 ] 

ASF GitHub Bot commented on FLINK-10663:
----------------------------------------

GJL commented on a change in pull request #6915: [FLINK-10663][streaming] Fix 
NPE when StreamingFileSink is closed without initialization.
URL: https://github.com/apache/flink/pull/6915#discussion_r227754363
 
 

 ##########
 File path: 
flink-streaming-java/src/main/java/org/apache/flink/streaming/api/functions/sink/filesystem/StreamingFileSink.java
 ##########
 @@ -375,6 +375,8 @@ public void invoke(IN value, SinkFunction.Context context) 
throws Exception {
 
        @Override
        public void close() throws Exception {
-               buckets.close();
+               if (buckets != null) {
 
 Review comment:
   `bucket` is non-final, and `Cmd + Alt + F7` shows there is only one 
assignment in `initializeState()`. One reason why `buckets` can be `null` is 
that `initializeState()` is not called at all. Another reason is that 
`initializeState()` exits prematurely due to exceptions. 
   If there were more things to be closed, we would need more null checks, and 
I would not add a comment to every null check. Hence, I would also not add a 
comment when there is only a single null check. Imo a comment could be 
perceived as too verbose because the necessity of it is simple enough to 
understand.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Closing StreamingFileSink can cause NPE
> ---------------------------------------
>
>                 Key: FLINK-10663
>                 URL: https://issues.apache.org/jira/browse/FLINK-10663
>             Project: Flink
>          Issue Type: Bug
>          Components: filesystem-connector, Streaming Connectors
>    Affects Versions: 1.6.1, 1.7.0
>         Environment: Rev cb141940821bcf62f4102dfd5c76aff99d0c15d1
>            Reporter: Gary Yao
>            Assignee: Gary Yao
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 1.6.3, 1.7.0
>
>
> *Description*
> If the sink is closed before it's state is initialized, an NPE is thrown.
> *Stacktrace*
> {code}
> java.lang.NullPointerException
>       at 
> org.apache.flink.streaming.api.functions.sink.filesystem.StreamingFileSink.close(StreamingFileSink.java:378)
>       at 
> org.apache.flink.api.common.functions.util.FunctionUtils.closeFunction(FunctionUtils.java:43)
>       at 
> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.dispose(AbstractUdfStreamOperator.java:117)
>       at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.disposeAllOperators(StreamTask.java:477)
>       at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:378)
>       at org.apache.flink.runtime.taskmanager.Task.run(Task.java:704)
>       at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to