Uploaded image for project: 'Apache Tez'
  1. Apache Tez
  2. TEZ-1818

Problem loading tez-api-version-info.properties in case current context classloader in not pointing to Tez jars

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.5.2
    • 0.5.3
    • None
    • None

    Description

      TEZ-1664 (0.5.2) introduced loading of tez-api-version-info.properties which is packaged within the tez-api.jar. Its using the current context classloader to load it:

      Thread.currentThread().getContextClassLoader()
                .getResourceAsStream(versionInfoFile);
      

      In our environment we load the tez code as a plugin. Our context classloader doesn't have any reference to the Tez code. Thus when instantiating the tez client there is this exception:

       WARN [2014-12-03 17:30:30.971] (VersionInfo.java:60) - Could not read 'tez-api-version-info.properties', java.io.IOException: Resource not found
      java.io.IOException: Resource not found
      	at org.apache.tez.common.VersionInfo.<init>(VersionInfo.java:56)
      	at org.apache.tez.client.TezApiVersionInfo.<init>(TezApiVersionInfo.java:26)
      	at org.apache.tez.client.TezClient.<init>(TezClient.java:137)
      	at org.apache.tez.client.TezClient.create(TezClient.java:213)
              ....
      

      Is there any specific reason the context classloader is used to load the file ?
      Since the properties file is usually bundled within the jar would TezApiVersionInfo.class.getResourceAsStream() not be a better fit ?

      Attachments

        1. TEZ-1818.1-branch0.5.2.patch
          1.0 kB
          Johannes Zillmann
        2. TEZ-1818.2.patch
          2 kB
          Hitesh Shah

        Activity

          People

            oae Johannes Zillmann
            oae Johannes Zillmann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: