flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-10663) Closing StreamingFileSink can cause NPE
Date Wed, 24 Oct 2018 11:52:00 GMT

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

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
 	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 the check 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:

> 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

View raw message