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

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.
Am I doing something wrong? Or can I suppress the error?
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)
Is there already an open install4j bug?
Do I need to collect more diagnostics?
any ideas?
Recreation Steps:
Control Panel-> Regional & language settings-> Regional Options-> Standards & Formats-> Estonian
Run Installer
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)

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.

Related

"Error applying transforms. Verify that the specified transform path are valid." when uninstalling

I am trying to uninstall Crystal Report for Visual Studio 2011, and install Crystal Report for Visual Studio 2019. I got the error message of "Error applying transforms. Verify that the specified transform path are valid." when uninstalling the program. Therefore, the newer version of Crystal Report for VS 2019 can't be installed.
I searched around and some posts says about windows registry entries caused the problem. I can't find out a solution on what to do.
Highly appreciate your response.
Crystal Reports: I am wondering if you have installed from a network share that is no longer available, or one where the UNC path specified to your transform is blocked or in other ways incorrect. What you need is a proper log file. Please see below. And have a quick peek here: https://apps.support.sap.com/sap/support/knowledge/en/1220433
There are also some issues with secure transforms and complications arising from this and newer Windows settings and security features. Maybe have a quick look here. Just a few links on the topic.
How many machines do you see this on? Just your own?
Preparation: A couple of things first:
Reboot: Do a reboot before attempting the next uninstall. Just to have a clean slate. Allow system to settle after reboot (give it a couple of minutes to settle down).
Corrupt installation files: Re-download your new setup to make sure its installation file is not corrupted. Try to malware scan it too. And finally set it unblocked as shown here.
Admin Rights: Second, make sure you run with proper admin rights? Run the msiexec.exe command from an elevated command prompt. Please launch an elevated cmd.exe (right click => run as administrator).
Anti-Virus: Disable your anti-virus first to prevent any locks from failing your uninstall.
Debugging "Ideas Lists": Common causes of setup runtime issues
Logging: Now the most important. You must also ensure proper logging for the uninstall effort. You can either use logging by policy
or define it at the command line level. It would be best to enable the
logging policy so the log file is automatically created in the tmp
folder. Please see this answer for more on logging.
When you have done the "Preparation" above, please run the
uninstall and create a proper log file. Here is the command line
(prefer the policy):
msiexec.exe /x "mysetup.msi" /L*V "C:\Temp\msilog.log"
Please open the log you created (or get the log from the temp folder
if you have logging policy enabled). Then inspect the log and match
against this sample log here:
https://www.itninja.com/question/transform-issues
What do you see? Just read line by line and don't be intimidated by
all the "line noise".
Common Technical Issues: If you have problems with all other MSI packages and their operation, you could have a bigger problem. Then you should rule out some runtime issues. Note that some issues are commonly caused by malware (or just technicalities that occur randomly sometimes):
Visual C++ Runtime - reinstall it. There are many versions. See what your package needs. The latest supported Visual C++ downloads.
Unregister / re-register msiexec.exe (can be necessary because of malware or normal technical glitches).
Run chkdsk.exe and sfc.exe to check for file corruptions and corrupt OS files.
Microsoft FixIt: You can use the Microsoft FixIt method as a last resort to clean out your existing installation. This generally works (unless you have hacked too much already), but is not ideal: http://support.microsoft.com/mats/Program_Install_and_Uninstall/ - this approach does not clean up or uninstall, it just unregisters the installed package and leaves all its files and registry settings in place. You can try to install the new version, but some interference issues are likely with the garbage left behind. Yes, you can try to clean up manually, but I would just try to overwrite first.
Links:
What is the root cause of "Error Applying Transforms. Verify that the specified transform paths valid"?
All About the Four Types of MSI Transforms
"Error applying transforms. Verify that the specified transform paths are valid."

Netbeans won't install on Windows 10

I'm trying to install Netbeans 8.2 Java EE, but whenever I start the installer it quits after configuring it. I am trying to install it on Windows 10 64-bit.
This is not going to make sense at all, but do you happen to have the "God Mode" item on your desktop? Take it off the desktop (delete it, move it somewhere else, whatever). I have no idea why, but it worked for me: I found the solution in this bug report - https://netbeans.org/bugzilla/show_bug.cgi?id=269988
I do hope this helps you, too.
This is an Java issue, which was came up due to recent windows 10 update, that started treated differently for GodMode folder/shortcut.
This has been already fixed - https://bugs.openjdk.java.net/browse/JDK-8179014
You can verify the fix in early access build of JDK8 update 152, which is available here
We have verified the issue only with GodMode, do let us k now if there are any other scenarios that can cause such similar issues.
I'm adding this because: I had a different issue which I was unable to find addressed anywhere, this question appears near the top of a web search for "NetBeans 8.2 ee won't install on Windows 10", and someone else may have the problem I had.
My NetBeans install was almost immediately crashing with the following error:
An unexpected exception happened in thread main
Exception: javax.xml.parsers.FactoryConfigurationError: Provider for
class javax.xml.parsers.DocumentBuilderFactory cannot be created
In my Windows 10 System Properties -> Environment Variables -> System Variables, I had a previously created _JAVA_OPTIONS variable values using -Xbootclasspath/a to append some jar files to the end of the bootstrap class path. These files are used with some work I'm doing with the Oracle BI Publisher plug-in for Microsoft Word.
As soon as I renamed the _JAVA_OPTIONS variable to something else, my NetBeans installation started normally and completed with no issues.
After NetBeans installation, I reset the name of this variable back to _JAVA_OPTIONS, and discovered that the values I have for this System Variable cause NetBeans launch to crash. (Which does not completely make sense to me since I am only appending these files/classes to the class path, and not overwriting.)
Regardless, I'll have to go back to the drawing board for my work with the BI Publisher plug-in; but at least I can use NetBeans now!
Uninstall any Java installations along with NetBeans, and install Java with NetBeans (bundle) from the Oracle website.
I had the same issue, and then installed the bundle, works perfectly.

Adding Environment Variables to Eclipse shortcut

Is it possible to set an environment variable for the current run of Eclipse ( RAD )?
Here is my situation
I have RAD 8.5 and RAD 9.0 installed on my box. It stopped working all of a sudden last week. It wouldn't even come up. When I checked the logs, both the versions had below error in the logs
java.lang.NoClassDefFoundError: com.mercury.ftjadin.hooks.interfaces.WToolkitHookQTJA
After some research I also found out that it is caused by HP's product that was installed on my box ( It was done as a corporate push and I wasn't even aware of it ).
Further research also revealed that there are about 4 environment variables that have a conflict with Eclipse and should be removed / blanked out for RAD to work. This will of course cause the HP product to not work.
So, I was wondering if there is a way to set these to blank in eclipse.ini file for each of the RADs or as part of the shorcut of RAD which is
C:\Software\RAD90\eclipse.exe -product com.ibm.rational.rad.product.v9.ide -showlocation -nosplash -clean
but not blank them out in the Environment Variables definition
This way, I will be able to use both the products without having to save the variable values between RAD and HP Mercury product usages and do not have to do a copy / paste every time which is prone to user errors / mistakes.
Hope the question makes sense. Please let me know, if I need to clarify anything.
You can start eclipse (for example RAD) from eclipse (for example a minimal Java plugin development) and in that case, you have the option to set the environment variables you want to use.
You have to set the target environment to the RAD instance and create a run configuration with the proper environment.
I know, this is less than ideal, but should work.
Another option would be the unsetting env variables (locally) in a batch file:
set var=
Though I do not know whether it would work or not.
This page helped my situation
Instead of playing with registry I took an option of batch
These suggestions will allow to work around this situation even with the environment variables in place and with corresponding values. Note: Conflicting application will not be recognized in a java context because it is being excluded from the java support mechanism.
Impact: Excludes Add-ins support from hooking to conflicting application executable via Windows Registry Editor
Requirement: The application must be started by an EXE file, except Java.exe/Javaw.exe/jpnlauncher.exe
Instructions:
a. Locate the executable filename of the application conflicting with add-in(s) support. Either use the Task Manager or the Microsoft Process Explorer.
b. Open Windows Registry Editor.
c. Navigate to: HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\JavaAgent\Modules
For 32bits applications on Windows x64:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercury Interactive\JavaAgent\Modules
d. Create a DWORD value with the name of the conflicting software executable filenmae and set the value to 0.
Impact: Does not load Java Support for specific launched session
Requirement: Application be launched using a batch file
Instructions:
a. Create a batch file (.bat)
b. Copy/Paste below coding before executing launching of Java application.
#ECHO off
Set _JAVA_OPTIONS=
Set JAVA_TOOL_OPTIONS=
Set IBM_JAVA_OPTIONS=
This approach will disable the java environment variables for the run session of the .bat file. Once batch execution closes, environment variables changes are lost.

What am I doing to cause an "IllegalArgumentException: Negative time" exception in install4j?

I've started building Linux installers on the 64 bit windows version of Install4j recently and am getting the error below when it the generated installers start to do their extraction.
Is this something I'm doing wrong or is unsupported? Or a bug in 5.1 of install4j. I've recently upgraded to it as well.
Extracting files ...
yx￯N
An error occurred:
java.lang.IllegalArgumentException: Negative time
Error log: /tmp/install4jError8217531393990762392.log
java.lang.IllegalArgumentException: Negative time
at java.io.File.setLastModified(Unknown Source)
at com.install4j.runtime.installer.helper.fileinst.FileInstaller.install(Unknown Source)
This turned out to simply be a corrupted custom JRE being included in the installer.
Had the same issue. Due to an independent reason one of the files contained in the source directory had a file date in the year 1961.
Since most calenders starts at 198ß a check of that results in a negative timestamp.
After setting a current date the build process worked fine.
So it was not denepending on any version of jdk and had nothing to do with any broken jre installations or something like that.
Hint: In the windows exploerer no file date was shown. This might be helpful for anyone having a similar source file since you won't notice a wrong date as long you don't see it.
Search for file with dates before 1980 or use a commander should help you to find that ones.

Perl EPIC on Eclipse: "\Perl\Directory is not a valid location for linked resources"

I am trying to debug a Perl script under EPIC on Eclipse (on Windows 7). When stepping along in the debugger, when it reaches the place where is has to jump to another package (called "Utilities.pm") due to a subroutine call, it gives the following succession of Eclipse errors:
'E:\Perl' is not a valid location for linked resources.
EPIC cannot access files located in folders on the path to the workspace folder, nor within the workspace folder itself.
An unexpected exception occurred while creating a link to E:/Perl/Utilities.pm
I am aware of this:
eclipse: Not a valid location for linked resources
and this:
Eclipse gives error "... is not a valid location for linked resources."
But I can't deduce from them how to solve my case.
Running as Administrator doesn't help.
TIA
Helen
Eclipse version 3.7.1 build M20110909-1335, EPIC version 0.6.44, Active Perl 5.14.2 running on Windows 7.
Note: cross-posted on: http://perlmonks.org/?node_id=972408
Apparently there was some inconsistency in the Workspace - Project -Linked Resources file structure. I have deleted the entire project, restarted from scratch, and then this error did not show up again.
But, the program hanged at another Eclispe/EPIC error, which I will post separately soon.
Here is the following problem:
Perl debuuger: on a run-time error, the debugger terminates with a cryptic message instead of "catching" the error