Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-8044

Remove/Update contrib/storage-hive copy of log4j Strings.java

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.19.0
    • 1.20.0
    • Storage - Hive
    • None

    Description

      https://github.com/apache/drill/blob/master/contrib/storage-hive/core/src/main/java/org/apache/logging/log4j/util/Strings.java is a copy of the real Log4j class but causes issues for Apache POI Excel code that relies on the latest Log4j code.

      Apache POI started using log4j 2.x in POI 5.1.0.

      This issue was originally reported at https://github.com/apache/drill/issues/2373

       

      Describe the solution you'd like

      If this class is really necessary, could you consider updating it to match the latest Log4j code? As long as Drill keeps its own copy of this Strings class, it is likely to regularly hit issues with being incompatible with latest log4j releases.

      https://issues.apache.org/jira/browse/HIVE-23088 is marked as fixed in recent Hive releases - so ideally, Drill team should remove the copy of the Strings class in Drill contrib/storage-hive. I can only find Hive 3.1.2 in Maven Central (this doesn't have the HIVE-23088 fix) - so I'm not really sure what Apache Hive team are doing with the release numbers.

      If you really need to keep the copy of the log4j Strings class, the latest log4j release code seems safe in that it is self-contained (other than using core Java code).

      https://github.com/apache/logging-log4j2/blob/rel/2.14.1/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              pj.fanning PJ Fanning
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: