Regression in JDK8 build 78: javac complains about missing Class#isAnnotationPresent
Joe Darcy
joe.darcy at oracle.com
Thu Feb 28 13:16:41 PST 2013
Hello Uwe,
One of the warnings you should have received from javac is JDK 8 is
something along the lines of "using -source 6 without setting
-bootclasspath."
https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
If follow this long-standing recommendation,
https://blogs.oracle.com/darcy/entry/how_to_cross_compile_for
then your existing code should compile.
Thanks for trying out the JDK 8 builds on Lucene,
-Joe
On 2/28/2013 1:07 PM, Uwe Schindler wrote:
> Hi,
>
> we tried to build Apache Lucene with JDK8 b78 today (Java(TM) SE Runtime Environment (build 1.8.0-ea-b78)), so we can use the new features of e.g. doclint on javac and javadocs (see related mails on javadoc-dev at openjdk.java.net). Unfortunately those bugs are fixed, but suddenly, the source code of Apache Lucene and Apache Solr no longer compiles, although valid in JDK6, JDK7 and earlier JDK8 builds. We get the following error:
>
> [javac] Compiling 113 source files to C:\Users\Uwe Schindler\Projects\lucene\trunk-lusolr3\lucene\build\test-framework\classes\java
> [javac] C:\Users\Uwe Schindler\Projects\lucene\trunk-lusolr3\lucene\test-framework\src\java\org\apache\lucene\util\TestRuleSetupAndRestoreClassEnv.java:134: error: cannot find symbol
> [javac] if (targetClass.isAnnotationPresent(SuppressCodecs.class)) {
> [javac] ^
> [javac] symbol: method isAnnotationPresent(Class<SuppressCodecs>)
> [javac] location: variable targetClass of type Class<?>
> [javac] Note: Some input files use or override a deprecated API.
> [javac] Note: Recompile with -Xlint:deprecation for details.
> [javac] 1 error
>
>
> This method exists since Java 5, but a recent commit in JDK 8 (http://hg.openjdk.java.net/jdk8/awt/jdk/rev/e04467fa13af) seems to cause this. The implementations were removed from the concrete classes, only the new default implementation on the interface should be used. Unfortunately, the compiler (javac) does not understand this and fails to compile. -target and -source is 1.6.
>
> >From the javadocs issues I know that currently the response times on new bugs on bugs.sun.com is > 3 weeks, so I contact you directly.
>
> Please include my eMail address into the responses, as I am not subscribed to both lists,
>
> Uwe
>
> -----
> Uwe Schindler
> uschindler at apache.org
> Apache Lucene PMC Member / Committer
> Bremen, Germany
> http://lucene.apache.org/
>
>
>
>
More information about the compiler-dev
mailing list