[
https://issues.apache.org/jira/browse/FLINK-10065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16569924#comment-16569924
]
ASF GitHub Bot commented on FLINK-10065:
----------------------------------------
StephanEwen commented on issue #6498: [FLINK-10065]
InstantiationUtil.deserializeObject(InputStream in, ClassLoader cl, boolean
isFailureTolerant) will close the inputStream
URL: https://github.com/apache/flink/pull/6498#issuecomment-410643692
Seems correct, especially because the comment above that part indicates that
the stream should not be closed.
@tzulitai can you share why this was changes in
9659ffd9b3ecafb3ca3a71868cdcde301b5e0b9a ?
Are there other places that call this functions where we now need to close
the stream explicitly?
----------------------------------------------------------------
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]
> InstantiationUtil.deserializeObject(InputStream in, ClassLoader cl, boolean
> isFailureTolerant) will close the inputStream
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: FLINK-10065
> URL: https://issues.apache.org/jira/browse/FLINK-10065
> Project: Flink
> Issue Type: Bug
> Reporter: Congxian Qiu
> Assignee: Congxian Qiu
> Priority: Major
> Labels: pull-request-available
>
> Now, the implementation of InstantiationUtil.deserializeObject(InputStream
> in, ClassLoader cl, boolean isFailureTolerant) isĀ
> {code:java}
> @SuppressWarnings("unchecked")
> public static <T> T deserializeObject(InputStream in, ClassLoader cl, boolean
> isFailureTolerant)
> throws IOException, ClassNotFoundException {
> final ClassLoader old = Thread.currentThread().getContextClassLoader();
> // not using resource try to avoid AutoClosable's close() on the given stream
> try (ObjectInputStream oois = isFailureTolerant
> ? new InstantiationUtil.FailureTolerantObjectInputStream(in, cl)
> : new InstantiationUtil.ClassLoaderObjectInputStream(in, cl)) {
> Thread.currentThread().setContextClassLoader(cl);
> return (T) oois.readObject();
> }
> finally {
> Thread.currentThread().setContextClassLoader(old);
> }
> }
> {code}
> InputStream is closable, so the parameter will be closed after call this
> method.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)