Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#148 closed defect (worksforme)

Build version string causes problems when added to Registry

Reported by: wlhartzell Owned by:
Priority: major Milestone: Enhanced
Component: general Version: 1.6.0-b22 GA
Severity: medium Keywords:
Cc:

Description (last modified by dmik)

Back in June when I started to test the latest Java, I found several installer requiring entries into the Registry that pointed to the new Java, or they would not work. So I copied via USB thumb drive the Registry entries from a Windows 7 machine, to text on the OS/2 machine. Then I edited out the obvious Windows only statements and manually added to the Registry. I'm going to quote the entire entry as you'll need something like it for the WPI installer:
For JRE only:

[HKEY_CLASSES_ROOT]
(@ = means put this as the data value and yes: use the clipboard to copy)
 [HKEY_CLASSES_ROOT\.jar]
	  @ = default = jarfile  
 [HKEY_CLASSES_ROOT\.jav]
 [HKEY_CLASSES_ROOT\.jav\PersistentHandler]
	  @ = default = {5e941d80-bf96-11cd-b579-08002b30bfeb} 
 [HKEY_CLASSES_ROOT\.java]
	  @ = PerceivedType = text
 [HKEY_CLASSES_ROOT\.java\PersistentHandler]
	  @ = default = {5e941d80-bf96-11cd-b579-08002b30bfeb}
 [HKEY_CLASSES_ROOT\.jnlp]
	  @ = default = JNLP File
	  @ = Content Type = application/x-java-jnlp-file
 [HKEY_CLASSES_ROOT\jarfile]
	  @ = default = Executable Jar File
 [HKEY_CLASSES_ROOT\jarfile\shell]
 [HKEY_CLASSES_ROOT\jarfile\shell\open]
 [HKEY_CLASSES_ROOT\jarfile\shell\open\command]
	  @ = default = D:\Java6\jre\bin\javaw.exe -jar %1% %2% %3% %4% %5%
 [HKEY_CLASSES_ROOT\java]
	  @ = default = java:
 [HKEY_CLASSES_ROOT\java\CLSID]
	  @ = default = {DB57B100-853B-11D0-AF95-0080C71F7993}
 [HKEY_CLASSES_ROOT\JavaWebStart.isInstalled]
	  @ = default = isInstalled Class
 [HKEY_CLASSES_ROOT\JavaWebStart.isInstalled\CLSID]
	  @ = default = {5852F5ED-8BF4-11D4-A245-0080C6F74284}
 [HKEY_CLASSES_ROOT\JavaWebStart.isInstalled\CurVer]
	  @ = default = JavaWebStart.isInstalled.1.6.0.0
 [HKEY_CLASSES_ROOT\JavaWebStart.isInstalled.1.6.0.0]
	  @ = default = isInstalled Class
 [HKEY_CLASSES_ROOT\JavaWebStart.isInstalled.1.6.0.0\CLSID]
	  @ = default = {5852F5ED-8BF4-11D4-A245-0080C6F74284}
 [HKEY_CLASSES_ROOT\JNLPFile]
	  @ = default = JNLP File
   	  @ = EditFlags = hex : 00,00,01,00
 [HKEY_CLASSES_ROOT\JNLPFile\Shell]  
 [HKEY_CLASSES_ROOT\JNLPFile\Shell\Open]
	  @ = default = &Launch
 [HKEY_CLASSES_ROOT\JNLPFile\Shell\Open\Command]
	  @ = default = D:\Java6\jre\bin\javaws.exe %1 %2% %3% %4% %5%

[HKEY_CURRENT_USER]
 [HKEY_CURRENT_USER\Software\JavaSoft] 
 [HKEY_CURRENT_USER\Software\JavaSoft\Java Runtime Environment]
 [HKEY_CURRENT_USER\Software\JavaSoft\Java Update]
 [HKEY_CURRENT_USER\Software\JavaSoft\Java Update\Policy]
	  @ = LastUpdateBeginTime =  
	  @ = LastUpdateFinishTime = 
 [HKEY_CURRENT_USER\Software\JavaSoft\Java Update\Policy\JavaFX]
	  @ = UpdateSchedule = dword : 00000007 
	  @ = UpdateScheduleMinutes = dword : 00000032
	  @ = Frequency = dword : 00000008 
	  @ = LastUpdateInvokedTime = 
 [HKEY_CURRENT_USER\Software\JavaSoft\Java2D]
 [HKEY_CURRENT_USER\Software\JavaSoft\Prefs] 

[HKEY_LOCAL_MACHINE]
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft] 
	  @ = InstallerVersion = 1.6.0-ga-b22 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Auto Update] 
	  @ = AUVersion = 2.0.6.1  
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in] 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\1.6.0-ga-b22] 
	  @ = JavaHome = D:\Java6\jre  
	  @ = UseNewJavaPlugin = dword : 00000001 
	  @ = HideSystemTrayIcon = dword : 00000000 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 
	  @ = CurrentVersion = 1.6
	  @ = Java6FamilyVersion = 1.6.0-ga-b22  
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6]
	  @ = JavaHome = D:\Java6\jre
	  @ = RuntimeLib = D:\Java6\jre\bin\client\jvm.dll  
	  @ = MicroVersion = 0 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0-ga-b22] 
	  @ = JavaHome = D:\Java6\jre  
	  @ = MicroVersion = 0  
	  @ = RuntimeLib = D:\Java6\jre\bin\client\jvm.dll 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0-ga-b22\MSI] 
	  @ = JU = 1 
	  @ = OEMUPDATE=  
	  @ = MODE = U  
	  @ = JQS =  
	  @ = FROMVERSION = 
	  @ = FROMVERSIONFULL = 
	  @ = KERNEL =   
	  @ = PRODUCTVERSION = 6.0-ga-b22 
	  @ = INSTALLDIR = D:\Java6\jre\  
	  @ = SYSTRAY = 1 
	  @ = EULA = 0 
	  @ = MOZILLA = 1  
	  @ = JAVAUPDATE = 1 
	  @ = AUTOUPDATECHECK = 1 
	  @ = AUTOUPDATEDELAY =  
	  @ = ImageCkSum =   
	  @ = FullVersion = 1.6.0-ga-b22  
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update] 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy] 
	  @ = PostStatusUrl = https://sjremetrics.java.com/b/ss/6 
	  @ = InstalledJREVersion = 1.6.0-ga-b22  
	  @ = EnableJavaUpdate = dword : 00000001 
	  @ = NotifyDownload = dword : 00000001 
	  @ = UpdateSchedule = dword : 0000000f 
	  @ = Frequency = dword : 00000001 
	  @ = UpdateMin = dword : 00000032 
	  @ = NotifyInstall = dword : 00000000 
	  @ = Method = jau-m  
	  @ = LastUpdateBeginTime =  
	  @ = LastUDCheckTime = 
	  @ = LastUpdateFinishTime = 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start] 
	  @ = CurrentVersion = 1.6.0-ga-b22 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.0.1] 
	  @ = Home = D:\Java6\jre\bin 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.0.1_02]
	  @ = Home = D:\Java6\jre\bin 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.0.1_03] 
	  @ = Home = D:\Java6\jre\bin 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.0.1_04]
	  @ = Home = D:\Java6\jre\bin 
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.2] 
	  @ = Home = D:\Java6\jre\bin
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.2.0_01] 
	  @ = Home = D:\Java6\jre\bin  
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Web Start\1.6.0-ga-b22] 
	  @ = Home = D:\Java6\jre\bin
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs] 

For SKD add after:
[HKEY_LOCAL_MACHINE]
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Auto Update]
	 @ = AUVersion = 2.0.6.1
this:
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit]
	 @ = CurrentVersion = 1.6

 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.6]
	 @ = JavaHome = d:\Java6
	 @ = MicroVersion = 0

 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.6.0-ga-b22]
	 @ = JavaHome = d:\Java6
	 @ = MicroVersion = 0
------------ done ---------

However, I initially used the version string 1.6.0-b22 (carried forward Windows' version string). Only later when an application complained, did I do Java --version to discover that the correct string was 1.6.0-ga-b22.

When I went back to make this correction in the Registry on October 6, did ALL Java 1.6 applications became trash with all frames and dialogs stretched vertically from top of screen to bottom with no text.

In chasing the solution to this, I reinstalled Odin, Java 1.6, and did several other system maintenance tasks. To no avail did any fix the problem, until I moved Java 1.6 to a different volume. Then everything resumed normal function. So I can conclude that one or more of the paths with the version string is the cause. I seem to remember that you had a bug that you fixed with symptom of dialogs with nothing within, think this may be related. I have not corrected the paths in the Registry to point to the new location, yet, and am leery to do so.

BTW, only you know the correct information that is needed in the Registry.

Change History (5)

comment:1 by wlhartzell, 13 years ago

This damn wiki formatting adds ? and high lites and low lites text, deletes asterisks and is the pita. Don't care for its action to plain text files.

comment:2 by dmik, 13 years ago

Description: modified (diff)
Resolution: worksforme
Status: newclosed

You can use (as I just did) to preserve plain text formatting when posting here. This will also suppress wikinizing the CamelCase words (or you can do it manually by prepending the ! sign in front of the word).
Thanks for the report.

Regarding the registry paths. The Odin installer (in particular, odininst.exe which is run right after the installation) does write out all the needed paths to the registry. So it looks like some sort of an installation conflict or failure took place in your case.

So far, we didn't experience any problems in the Java applications due to missing registry path entries.

If you find a particular application that at some point behaves wrongly and goes back to normal after you change something in the registry, we will be thankful for reporting back with the name of the application and the entries you changed.

Until then, I'm closing this ticket.

Version 0, edited 13 years ago by dmik (next)

in reply to:  2 comment:3 by wlhartzell, 13 years ago

Replying to dmik:

You can use {{{ ... }}} around the block of text (as I just did) to preserve plain text formatting when posting here. This will also suppress wikinizing the CamelCase words (or you can do it manually by prepending the ! sign in front of the word).

Thanks for fixing the formatting.

Thanks for the report.

Regarding the registry paths. The Odin installer (in particular, odininst.exe which is run right after the installation) does write out all the needed paths to the registry. So it looks like some sort of an installation conflict or failure took place in your case.

Odin install does not install any entries for Java 2 platform (at least not any version that is available on Netlabs). I did not see any Java 2 entries in the last WPI released for OpenJDK 1.6, either. This is not a problem on my system. I tested with a different machine and can duplicate the problem.

So far, we didn't experience any problems in the Java applications due to missing registry path entries.

I can only assume that you had the old Innotek Java installed on your system, or even some other version of Java that wrote the Java 2 entries into the Registry (IBM Java 1.3.1??), but for a virgin install, you'll have to make those entries, or you will have many of those application installers failing to detect Java. You can test this by purging your Registry of ALL entries that mention Java in any manner (that is more than the ones above). I did, and not only the Windows parts, but also the OS/2 ini. And yes, after I tested this, I went back and re-install all those old versions of Java, starting with 1.1.14.
Howto clean the Registry: Run the uninstallers for all Javas, starting with the oldest install, to the most recent install. Then use RegEdit/2 to search for Java, Jre, and anything else that you might link to Java. Delete all such entries. It might be faster to just deleted the Windows registry data files: Boot.dat, system.dat, user.dat, registry.dat and then clean OS/2 ini files.

If you find a particular application that at some point behaves wrongly and goes back to normal after you change something in the registry, we will be thankful for reporting back with the name of the application and the entries you changed.

I am reporting that all Java applications cannot work, using OpenJDK 1.6, with the above entries in the Registry. This is a failure of the VM. It is directly related to the version string causing it to barf, and I don't know why. This only affects OpenJDK 1.6, and not older versions of Java.

Until then, I'm closing this ticket.

Up to you. But you could try duplicating it.

comment:4 by dmik, 13 years ago

Okay, please be more specific then and provide the exact steps to reproduce the problem (with all output and/or screenshots of your attempts to run the application). I don't have these JavaSoft entries you posted in the description in my registry and *all* applications work fine here.

Odin doesn't create Java entries, it creates Windows entries necessary for Windows system API functions to work properly.

comment:5 by wlhartzell, 13 years ago

I was unable to recreate this problem on Windows 7, which has OpenJDK 1.7 installed. It seems that only the entries in HKey_Local_Machine is important for this bug. Am still playing around with this. There seems to an interaction between Innotek entries and Java, but it is there and then it isn't, arrrrg! Better notes, Bill.

Note: See TracTickets for help on using tickets.