Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Java Prefs error when using vaadin-maven-plugin::compile
I see the following error when building my Vaadin application:
Using com.vaadin:vaadin-client version 7.5.5 sep. 19, 2015 5:29:17 PM java.util.prefs.WindowsPreferences <init> WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
It seems there's some software in the Maven tool chain that attempts to use the so-called systemRoot() from Java Preferences. On a Windows platform this translates into Windows Registry HKLM path where 99% of users do not have write access ... unless they always run as Administrator with UAC turned off, and true those people will never see the above error message.
How can this be fixed?
(there are several reports on this but no solution as far as I can tell)
Is there any news about this issue - this seems to be related to Vaadin compiling with gwt ?
We used the workaround to create the necessary key in the Windows registry HKLM on development machines.
Thanks for bumping it.
It looks like the bug is already tracked by the GWT Team as well: https://github.com/gwtproject/gwt/issues/8243
Regardless of the outcome the problem is within the JDK which has in older versions just created that registry node (which the workaround also does) and we have to wait until the fix makes it into either Java 8 or Java 9 (or both). Just the summary from the linkes github issue that I referenced before.
I started this thread, so I believe I have an obligation to "finish" it as well.
The warning comes as a result of code in the GWT compiler. But it is not the fault of the GWT compiler, it is actually a JDK bug. It is not correct when I first said that it was the result of some code calling the system prefs tree (as opposed to the user prefs tree). GWT compiler dudes have actually made no mistake in their code, so we cannot blame them, only the JDK is at fault. :-)
The warning can be safely ignored in vaadin context (i.e. the GWT compiler). It comes from the JDK attempting to instantiate the system prefs tree, but the GWT compiler does not make use of or reference the system prefs tree in any way. If you don't want to look at the warning, then you can manually implement the registry key which it complains about. This will "hide" the bug at the cost of a registry key that shouldn't be required in the first place. Or you can wait until Oracle pushes the fix into a Java release. It has been fixed in the JDK code base in June 2016, but as far as I can tell not yet pushed into any official Java release.
Personally, I'm just ignoring it.