Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-3444

Upgrade SQLLine to 1.9.0, and solve "Class path contains multiple SLF4J bindings" problem

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.22.0
    • None
    • None

    Description

      The "Class path contains multiple SLF4J bindings" is as follows:

      sqlline version 1.9.0
      sqlline> !connect jdbc:hsqldb:res:scott SCOTT TIGER
      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in [jar:file:/Users/julianhyde/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/Users/julianhyde/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
      SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
      0: jdbc:hsqldb:res:scott> 

      Calcite's sqlline script generates target/fullclasspath.txt with both of the above jar files on it. The solution is to remove one of them. I propose to remove slf4j-log4j12 from the generated classpath.

      This change fixes the problem on Windows also, even though Windows uses a different technique (copying dependencies to each module's target/dependencies directory).

      Attachments

        Issue Links

          Activity

            People

              julianhyde Julian Hyde
              julianhyde Julian Hyde
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: