Heads up: Java 25 vs. ECJLINT Gradle task and Eclipse IDE

Uwe Schindler <[email protected]>
Newsgroups gmane.comp.jakarta.lucene.devel
Message-ID <[email protected]>
Hi,

just some warning to all: Please avoid at moment any new Java 25 
features in main branch like the JEP 512 "flexible ctor bodies" 
(https://openjdk.org/jeps/513). They work with Javac, but IDE support 
(Eclipse) and Linting with the Eclipse ECJ compiler (that our build is 
doing) is heavily buggy!

If you figure out that ECJ linting fails with errors like "final field 
may/have already assigned" after you did change some code, you may have 
hit one of those bugs. In that case Javac by OpenJDK is the only valid 
source of truth. If you hit such bugs, please open issues like this to 
get this fixed as soon as possible:

https://github.com/eclipse-jdt/eclipse.jdt.core/issues/4449

In most cases there a ways to avoid the issue by reshuffling the code, 
but best is to for now avoid any assignments in constructors before 
super() or this().

In addition because the Eclipse IDE uses an older version of ECJ with 
two fatal bugs (one older one with IndexReaderContext sealed classes and 
another one with JEP 512 where a final field assignment is not seen), 
our code currently does not compile with Eclipse IDE, so stay tuned.

Uwe

P.S.: I will be on travel whole October and have less time to react by 
mail. I will try to get a forbiddenapis release out end of this week, 
but I am stilll waiting for an ASM release. If it does not work, I will 
release with partial Java 25 and no Java 26 support.

-- 
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.