JDK9 Modules
Malachi de Ælfweald
malachid at gmail.com
Tue Jul 5 08:21:03 UTC 2016
Hi Alan,
On Tue, Jul 5, 2016 at 1:03 AM, Alan Bateman <Alan.Bateman at oracle.com>
wrote:
> On 05/07/2016 08:00, Malachi de Ælfweald wrote:
>
> :
>>
>> Neo4j fails due to internal Sun classes being used:
>> cannot access class sun.nio.ch.FileChannelImpl (in module java.base)
>> because module java.base does not export sun.nio.ch to unnamed module
>> @0x6166e06f
>>
> In this case then I assume the exception has more detail to explain this.
> This may be a case where a bug needs to be submitted to Neo4j so that the
> maintainers look at this usage. In the mean-time, then the -XaddExports
> option can be used a workaround to keep existing versions working as before.
>
I did submit a bugreport to them with their debug log.
You are correct - the full error message was:
Exception occurred while setting up store modules. Attempting to close
things down. class org.neo4j.io.pagecache.impl.SingleFilePageSwapper (in
unnamed module @0x6166e06f) cannot access class sun.nio.ch.FileChannelImpl
(in module java.base) because module java.base does not export sun.nio.ch
to unnamed module @0x6166e06f
java.lang.IllegalAccessError: class
org.neo4j.io.pagecache.impl.SingleFilePageSwapper (in unnamed module
@0x6166e06f) cannot access class sun.nio.ch.FileChannelImpl (in module
java.base) because module java.base does not export sun.nio.ch to unnamed
module @0x6166e06f
(with a stack trace of course)
Is there documentation on how to properly use the -XaddExports? Is it
something like:
-XaddExports:jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
>
>
>> Dagger fails due to the @Generated:
>> NoClassDefFoundError: javax/annotation/Generated
>>
>> :
>>
>> For the Dagger case, I know it is accepting the '-addmods' argument,
>> because it gives an error if I use '-J-addmods'. I also know that it is
>> accepting "java.annotations.common" because if I change it to javax, it
>> gives an error. But it still can't find the class. I've also tried
>> ALL-SYSTEM and ALL-UNNAMED.
>>
>> Is this the Dagger annotation processor? In that case then you might need
> `-J-addmods -Jjava.annotations.common` (getting the command line right when
> there is white space is awkward but we have an update coming that will make
> this easier).
It is the Google version of the Dagger apt processor. I did see that
suggestion in one of the bugreports. With the -J-addmods, it complains
about the option not existing (it doesn't with -addmods). With the
-Jjava.annotations.common, it complains that the module can't be found.
Without the -J it just fails to find the annotation.
>
>
> -Alan
>
More information about the jigsaw-dev
mailing list