yankee
yankee

Reputation: 40830

java.util.prefs.FileSystemPreferences trys to open broken path

Since recently some java applications started to print the following warnings every now and than:

java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: /home/yha/.java/.userPrefs/_!(k![@"k!'`!~!"p!(@!bw"y!#4![!"v!':!d@"t!'`!bg"0!&@!e@"w!'`!ew"0!(k!c!"l!&:!d!"y!'k!bg"n!$0!,w"h!(!!c!"s!'k!}w"h!(@!a@"v!'4!.@"5!'}!a@"s!'`!cw!n!(0= create failed.

"create failed". No kidding! What kind of file name is that?

After googling I now know what the Java Preferences Subsystem is and that the default value for storage on Linux should be $HOME/.userPrefs or the like but... that does not explain where the path I have in my log message is coming from. And I still don't know where to set this value. Maybe there is a configuration file with the storage file path somewhere that became corrupt.

using openjdk-7 on Kubuntu 12.10

Upvotes: 7

Views: 2324

Answers (1)

jtahlborn
jtahlborn

Reputation: 53694

That whacky string is the result of a call to java.util.prefs.Base64.byteArrayToAltBase64(). if you reverse the process, you get: "yEdeditor.DocumentType{typeString='application-yfiles'}". does that string mean something to you?

the file name characters may not ultimately be the problem (they may be correct). if your ubuntu home directories are encrypted, you are most likely running into this "well known" issue (max file name length of 143 chars for files in encrypted filesystems). very subtle and extremely hard to diagnose bug.

Upvotes: 8

Related Questions