TLAminion
TLAminion

Reputation: 1

Install4j produces error.log with NoClassDefFoundError when installing in untranslated language

I'm using install4j and it works fine for the 10 languages we've got translations for, however if a user tries to install on a (windows XP) machine that's using another language eg Russian or Estonian, then an error.log file is created in the directory containing the installer. The installation completes without any apparent problems and gives a choice of language to run in but also creates the error log.

  1. Am I doing something wrong? Or can I suppress the error?
  2. Is this fixed in later versions of install4j (I couldn't see any mention in the change logs and it's non-trivial to ask for our build machine's install4j to be upgraded)
  3. Is there already an open install4j bug?
  4. Do I need to collect more diagnostics?

any ideas?

Recreation Steps:

  1. Control Panel-> Regional & language settings-> Regional Options-> Standards & Formats-> Estonian
  2. Run Installer
  3. Error.log then contains:

java.lang.NoClassDefFoundError: sun.awt.AppContext$PostShutdownEventRunnable
at sun.awt.AppContext.stopEventDispatchThreads(AppContext.java:535)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:296)
at java.lang.Thread.run(Thread.java:736)

java.lang.NoClassDefFoundError: java.nio.charset.Charset$3
at java.nio.charset.Charset.probeExtendedProvider(Charset.java:397)
at java.nio.charset.Charset.lookupExtendedCharset(Charset.java:420)
at java.nio.charset.Charset.lookup2(Charset.java:454)
at java.nio.charset.Charset.lookup(Charset.java:440)
at java.nio.charset.Charset.isSupported(Charset.java:486)
at sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:79)
at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:91)
at com.exe4j.runtime.util.WinDel.scheduleDeletion(Unknown Source)
at com.exe4j.runtime.WinLauncher$3.run(Unknown Source)

Upvotes: 0

Views: 652

Answers (1)

Ingo Kegel
Ingo Kegel

Reputation: 47965

The error.log is actually not from the installer process but from a cleanup process that is launched when the installer exits. The cleanup process deletes the temporary directory to which the installer has been extracted. Due to this exception, that temporary directory has probably not been deleted. The integrity of the installation has not been impacted.

Interestingly, this error can only happen if the encoding "UTF-16LE" is not available in the JRE. However, this is one of the basic encodings that have to be available. So it looks like there's a bug in the JRE that is triggered in this specific situation.

Upvotes: 1

Related Questions