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