You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Igor Kryvenko (JIRA)" <ji...@apache.org> on 2018/04/21 20:16:00 UTC

[jira] [Created] (HIVE-19265) Potential NPE and hiding actual exception in Hive#copyFiles

Igor Kryvenko created HIVE-19265:
------------------------------------

             Summary: Potential NPE and hiding actual exception in Hive#copyFiles
                 Key: HIVE-19265
                 URL: https://issues.apache.org/jira/browse/HIVE-19265
             Project: Hive
          Issue Type: Bug
            Reporter: Igor Kryvenko
            Assignee: Igor Kryvenko


{{In Hive#copyFiles}} we have such code
{code:java}
if (src.isDirectory()) {
        try {
          files = srcFs.listStatus(src.getPath(), FileUtils.HIDDEN_FILES_PATH_FILTER);
        } catch (IOException e) {
          pool.shutdownNow();
          throw new HiveException(e);
        }
      }
{code}
If pool is null we will get NPE and actual cause will be lost.

Initializing of pool
{code:java}
    final ExecutorService pool = conf.getInt(ConfVars.HIVE_MOVE_FILES_THREAD_COUNT.varname, 25) > 0 ?
        Executors.newFixedThreadPool(conf.getInt(ConfVars.HIVE_MOVE_FILES_THREAD_COUNT.varname, 25),
        new ThreadFactoryBuilder().setDaemon(true).setNameFormat("Move-Thread-%d").build()) : null;
{code}
So in the case when the pool is not created we can get potential NPE and swallow an actual exception



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