Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Now, the implementation of InstantiationUtil.deserializeObject(InputStream in, ClassLoader cl, boolean isFailureTolerant) isĀ
@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); } }
InputStream is closable, so the parameter will be closed after call this method.
Attachments
Issue Links
- links to