Multi-Release JAR file patch as applied to build 108 of Java 9 breaks almost every project out there (Apache Ant, Gradle, partly Apache Maven)
uschindler at apache.org
Sat Mar 5 14:17:26 UTC 2016
I am glad that the appending of "#resource" is indeed a bug.
> > I'd suggest to please ASAP revert the Multi-Release JAR file patch and
> provide a new preview build as soon as possible. I think there is more work
> needed to fix this. If this does not revert to the original state, it will be
> impossible to build and test Lucene, Elasticsearch,.... (and almost every Java
> project out there!). So short: We cannot test anymore and it is likely that we
> cannot support Java 9 anymore because the build system used by most Java
> projects behind the scenes does not bootstrap itself anymore.
> Sigh, I think those of us that reviewed this missed the point that the
> fragment is appended by default. This will of course break code that
> parses URL strings in naive ways (anything looking for ".xml" should be
> looking at the path component of course).
This is why I put the Ant developers in CC. The correct way would be to look at the *decoded* path (not just getPath() because this is also one of the "famous" traps in the URL class - one reason why it should be avoided in favor of URI). URL.toURI().getPath() is most safe to fix the issue in Apache Ant (Stefan Bodewig: Should I open an issue in Ant?). Maybe Ant developers can fix this code in later versions to handle URLs more correct. In general there is lots of code outside that incorrectly uses URLs, because developers are lazy...
> I'll create a bug for this
> now, assuming you haven't created one already.
No, I haven't. Thanks for doing this.
> One general point is that the purpose of EA builds and timely testing by
> Lucene and other projects is invaluable for shaking out issues. There
> will be issues periodically and much better to find these within a few
> days of pushing a change rather than months later.
This is why we do this! The problem with the EA builds is still the large delay until pushes are appearing in builds. In most cases it takes > 2 weeks until an EA build contains pushed fixes.
We are still waiting for fixes of JDK-8150280 and JDK-8150436 (duplicate of JDK-8148786). Both issues were resolved long time ago. The problem is if we have fatal issues like this, because it prevents testing the above bugs (once they are fixed).
More information about the core-libs-dev