[
https://issues.apache.org/jira/browse/FLINK-16597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17061597#comment-17061597
]
Roman Khachatryan commented on FLINK-16597:
-------------------------------------------
1. I mean something like this:
{code:java}
invoke() {
try {
Exception originalError = null;
try {
format.open ...
} catch (e) {
throw originalError = e;
} finally {
try {
format.close();
} catch (e)
throw ExceptionUtils.firstOrSupressed("unable to close format: " + e,
originalError);
}
}
} catch (e) {
try if (format != null) format.tryCleanupOnError
catch (e) log(e)
...
} finally {
// do nothing with format
}
}
{code}
2. I think you are right (we should probably add logging into catch block then)
> tryCleanupOnError should happen before close
> --------------------------------------------
>
> Key: FLINK-16597
> URL: https://issues.apache.org/jira/browse/FLINK-16597
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / Task
> Affects Versions: 1.10.0
> Reporter: Jiayi Liao
> Priority: Major
>
> If {{DataSinkTask}} fails or throws an exception, the {{OutputFormat}} will
> call {{tryCleanupOnError}} before {{close}}. But the calling order is reverse
> when {{DataSinkTask}} is cancelled, which doesn't make much sense that we can
> still clean the output format after it's closed.
> I'm not very sure if this is a bug. But this does mislead our developers when
> implementing our customized {{OutputFormat}}. cc [~sewen]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)