[slf4j-user] slf4j-api 1.7.8 broken?

Ceki Gülcü ceki at qos.ch
Tue Dec 16 22:40:37 CET 2014


Since this issue will affect all Scala users for the foreseeable future, 
I'll cut a new release without JSR 305 annotations.

On 12/16/2014 19:17, Elliot Huntington wrote:
> I understand now. Thank you Robert.
>
> On Tue, Dec 16, 2014 at 10:46 AM, Robert Elliot <rob at lidalia.org.uk
> <mailto:rob at lidalia.org.uk>> wrote:
>
>     It’s a scalac bug, not an SLF4J bug. See here:
>     https://issues.scala-lang.org/browse/SI-5420
>
>
>
>
>>     On 16 Dec 2014, at 17:30, Elliot Huntington
>>     <elliot.huntington at gmail.com <mailto:elliot.huntington at gmail.com>>
>>     wrote:
>>
>>     Please see the attached sscce and the bundled build.gradle file.
>>     It contains notes on how to reproduce the problem. It is
>>     configured by default to produce the problem. If you comment out
>>     the dependency for slf4j-api version 1.7.8 and add the line for
>>     the dependency to version 1.7.7, everything works fine.
>>
>>     Please be sure to run the sscce with the following to make sure
>>     you're not caching any dependencies:
>>
>>     $ gradle clean run
>>
>>     ------ Here is my environment configuration ------
>>
>>     $ uname -a
>>     Linux machinename 3.13.0-24-generic #47-Ubuntu SMP Fri May 2
>>     23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
>>     (This is Linux Mint 17 with Cinnamon)
>>
>>     export JAVA_HOME=/home/username/apps/java_home
>>     export GRADLE_HOME=/home/username/apps/gradle_home
>>     export SCALA_HOME=/home/username/apps/scala-2.10.3
>>
>>     $ java -version
>>     java version "1.7.0_55"
>>     Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
>>     Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
>>
>>     $ scala -version
>>     Scala code runner version 2.10.3 -- Copyright 2002-2013, LAMP/EPFL
>>
>>     $ gradle --version
>>
>>     ------------------------------------------------------------
>>     Gradle 1.12
>>     ------------------------------------------------------------
>>
>>     Build time:   2014-04-29 09:24:31 UTC
>>     Build number: none
>>     Revision:     a831fa866d46cbee94e61a09af15f9dd95987421
>>
>>     Groovy:       1.8.6
>>     Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23
>>     2013
>>     Ivy:          2.2.0
>>     JVM:          1.7.0_55 (Oracle Corporation 24.55-b03)
>>     OS:           Linux 3.13.0-24-generic amd64
>>
>>
>>
>>     On Mon, Dec 15, 2014 at 11:55 PM, Robert Elliot
>>     <rob at lidalia.org.uk <mailto:rob at lidalia.org.uk>> wrote:
>>
>>         He's writing Scala - the Scala compiler needs all annotation
>>         classes on the compile time class path, unlike javac which
>>         doesn't mind them.
>>
>>         > On 16 Dec 2014, at 06:24, Ceki Gülcü <ceki at qos.ch
>>         <mailto:ceki at qos.ch>> wrote:
>>         >
>>         >
>>         > I am assuming it's a build time error (not runtime) and you
>>         are using gradle. Can you clean gradle cache?
>>         >
>>         >> On 12/16/2014 7:22, Ceki Gülcü wrote:
>>         >> Hi Elliot,
>>         >>
>>         >> We added the JSR 305 @Nonnull into ILoggerFactory interface and
>>         >> LoggerFactory class in version 1.7.8.
>>         >>
>>         >> I have just verified that client code builds just fine without
>>         >> com.google.code.findbugs:jsr305 being present on the class
>>         path.
>>         >>
>>         >> Can you tell use more about your build environment. JDK
>>         version. Build
>>         >> tool etc.
>>         >>
>>         >> Are you doing a clean build?
>>         >>
>>         >> Cheers,
>>         >>
>>         >> --
>>         >> Ceki
>>         >>
>>         >>> On 12/15/2014 23:58, Elliot Huntington wrote:
>>         >>> slf4j-api version 1.7.8 was released to the maven central
>>         repository on
>>         >>> 2014-12-14, which was yesterday. Today one of my builds
>>         that depended on
>>         >>> slf4j-api with a version range from 1.7.5 -> 1.7.8 started
>>         to break. I'm
>>         >>> getting error messages like this:
>>         >>>
>>         >>> Class javax.annotation.Nonnull not found - continuing with
>>         a stub.
>>         >>> Caught: java.lang.NullPointerException while parsing
>>         annotations in
>>         >>>
>>         /home/username/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.8/40d4abec9e853fd9f17fb144f1e7c2c5bab52af9/slf4j-api-1.7.8.jar(org/slf4j/LoggerFactory.class)
>>         >>>
>>         >>> error while loading LoggerFactory, class file
>>         >>>
>>         '/home/username/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.8/40d4abec9e853fd9f17fb144f1e7c2c5bab52af9/slf4j-api-1.7.8.jar(org/slf4j/LoggerFactory.class)'
>>         >>>
>>         >>> is broken
>>         >>> (class java.lang.RuntimeException/bad constant pool index:
>>         0 at pos:
>>         >>> 9496)
>>         >>>
>>         /home/username/projects/1.0.5-gradle/common/src/main/scala/company/product/common/LogHelper.scala:14:
>>         >>>
>>         >>> value getLogger is not a member of object
>>         org.slf4j.LoggerFactory
>>         >>>   lazy val logger = LoggerFactory.getLogger(this.getClass)
>>         >>>                                                      ^
>>         >>>
>>         >>> Has getLogger purposefully been removed from the slf4j-api
>>         version 1.7.8
>>         >>> or is it possible that the artifact uploaded to the maven
>>         central
>>         >>> repository is corrupted? This is a breaking change.
>>         >>>
>>         >>> After excluding all transitive dependencies to slf4j-api
>>         from my project
>>         >>> and explicitly using version 1.7.7, my project builds fine
>>         again. What
>>         >>> happened in version 1.7.8 that was released to the maven
>>         central
>>         >>> repository yesterday?
>>         >>>
>>         >>>
>>         >>> _______________________________________________
>>         >>> slf4j-user mailing list
>>         >>> slf4j-user at qos.ch <mailto:slf4j-user at qos.ch>
>>         >>> http://mailman.qos.ch/mailman/listinfo/slf4j-user
>>         >> _______________________________________________
>>         >> slf4j-user mailing list
>>         >> slf4j-user at qos.ch <mailto:slf4j-user at qos.ch>
>>         >> http://mailman.qos.ch/mailman/listinfo/slf4j-user
>>         > _______________________________________________
>>         > slf4j-user mailing list
>>         > slf4j-user at qos.ch <mailto:slf4j-user at qos.ch>
>>         > http://mailman.qos.ch/mailman/listinfo/slf4j-user
>>         _______________________________________________
>>         slf4j-user mailing list
>>         slf4j-user at qos.ch <mailto:slf4j-user at qos.ch>
>>         http://mailman.qos.ch/mailman/listinfo/slf4j-user
>>
>>     <sscce.tgz>_______________________________________________
>>     slf4j-user mailing list
>>     slf4j-user at qos.ch <mailto:slf4j-user at qos.ch>
>>     http://mailman.qos.ch/mailman/listinfo/slf4j-user
>
>
>     _______________________________________________
>     slf4j-user mailing list
>     slf4j-user at qos.ch <mailto:slf4j-user at qos.ch>
>     http://mailman.qos.ch/mailman/listinfo/slf4j-user
>
>
>
> _______________________________________________
> slf4j-user mailing list
> slf4j-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/slf4j-user
>


More information about the slf4j-user mailing list