Java 9 build 148 causes trouble in Apache Lucene/Solr/Elasticsearch

Andrew Haley aph at
Mon Dec 12 15:30:18 UTC 2016

On 12/12/16 15:11, Uwe Schindler wrote:

> Thanks for taking care! Your proposal is still the "volatile only
> during safepoint" idea? I remember our discussions last FOSDEM and
> this is why I brought it up in this mail thread (see my original
> mail referring to your name).

It's the same idea.  It's occurred to me that the ability to have a
field write that is only guaranteed to be visible to all threads after
a safepoint is a more generally useful idea than just something for
mapped ByteBuffers.  So, my current plan (such as it is) involves
creating a new kind of VarHandle read, and this is a new public API,

> I was aware, that Java 10 would be a good place for the "correct fix
> that no longer relies on GC". For Java 9, we should go the current
> route and add the Unsafe method to forcefully unmap. The new unmap
> method is now needed, because the recent Jigsaw enhancements make it
> completely impossible to do setAccessible on JDK modules by default
> so the internal Cleaner is unreachable. Lucene is happy to get a
> "dirty workaround" for Java 9 and we can then wait for Java 10 where
> we get a public close() method on MappedByteBuffer / DirectBuffer.

Sure, I get that.  It's a bit unfortunate, but getting it done for JDK
9 was always going to have been a stretch,


More information about the jigsaw-dev mailing list