commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daryl Odnert (JIRA)" <j...@apache.org>
Subject [jira] [Created] (VFS-683) Thread safety issue in VFSClassLoader - NullPointerException thrown
Date Tue, 20 Nov 2018 21:51:00 GMT
Daryl Odnert created VFS-683:
--------------------------------

             Summary: Thread safety issue in VFSClassLoader - NullPointerException thrown
                 Key: VFS-683
                 URL: https://issues.apache.org/jira/browse/VFS-683
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: 2.2
            Reporter: Daryl Odnert


In my application, I had two instances of the {{VFSClassLoader}}, each of which was being
used in a distinct thread. Both {{VFSClassLoader}} instances refer to the same compressed
file resource described by a {{FileObject}} that is passed to the class loader's constructor. Intermittently,
the application throws an exception with the stack trace shown below. So, there seems to be
either a race condition in the code or an undocumented assumption here. If it is unsupported
for two {{VFSClassLoader}} instances to refer to the same resource (file), then that assumption
should be documented. But if that is not the case, then there is a race condition bug in the
implementation.
{noformat}
43789 WARN  {} c.a.e.u.PreferredPathClassLoader - While loading class org.apache.hive.jdbc.HiveDatabaseMetaData,
rethrowing unexpected java.lang.NullPointerException: Inflater has been closed
java.lang.NullPointerException: Inflater has been closed
	at java.util.zip.Inflater.ensureOpen(Inflater.java:389)
	at java.util.zip.Inflater.inflate(Inflater.java:257)
	at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:152)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at org.apache.commons.vfs2.util.MonitorInputStream.read(MonitorInputStream.java:91)
	at org.apache.commons.vfs2.FileUtil.getContent(FileUtil.java:47)
	at org.apache.commons.vfs2.impl.Resource.getBytes(Resource.java:102)
	at org.apache.commons.vfs2.impl.VFSClassLoader.defineClass(VFSClassLoader.java:179)
	at org.apache.commons.vfs2.impl.VFSClassLoader.findClass(VFSClassLoader.java:150)
        at com.atscale.engine.utils.PreferredPathClassLoader.findClass(PreferredPathClassLoader.scala:54)
{noformat}



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

Mime
View raw message