Friday, June 23, 2006

A Hot Cup of Java

Maybe it's true that what we dislike in others is what we least like in ourselves. I remember my father yelling at me on occasion for not listening to his answer. Usually it was because I'd parsed it in a manner other than he meant it and he'd lose his cool rather than rephrasing it.

Of course, I was only around eight years old. My responsibilities, rather than the maintenance of a multi-million dollar room full of servers, were limited to tasks such as gluing macaroni artfully onto construction paper or clipping a bunch of Spanish magazines to make collages and calendars.

Over the past 30-some years I've become much better at parsing statements and rephrasing my own when I'm misunderstood, but sooner or later someone always moves me to my breaking point. So it was with Herman:

We have discovered that $YourBigApp will cause a conflict with another application which only works with JRE version 1.3 while $YourBigApp requires JRE version 1.4.

From what we know about the Java environment the browser cannot run two different JREs at the same time.
That's a reasonable enough question, and it was asked professionally, providing lots of details about this other application. Details I didn't need, but the guy knew what he was doing.

So why am I writing about it?

Hi Herman,

It's possible to install multiple instances of the JRE to different directories without deleting older versions by downloading the Java package for later or network installation, then running the Custom rather than Basic or Express Installer.

The HKEY_CLASSES_ROOT\CLSID\{ABCD1234-nnnn-nnnn-nnnn-nnnnnnnnnnnn} Registry key is mapped by default in the client system to the JRE 1.3. Changing this to point to the v1.4 JRE will allow $OurBigApp to identify the correct JRE and allow $CrapApp to continue using the v1.3 JRE.

Love, REC

And that's where it should've ended. Should have, because the answer is clear: change one registry key value, a change that can be easily pushed onto every machine in the network.

Instead, he started driving me apeshit.
Thanks for the reply. I'm not sure exactly how to implement your suggestion (and trial and error is not an option for us). Our internal skillset does not include Java. Could you please supply a set of instructions for achieving what you suggest?
So what if your "internal skillset does not include Java"?! The solution has fuck-all to do with Java! The solution is "change one fucking registry key"!

Herman, there's no programming involved in the solution I sent. You need to install the later version of Java and specify that the installer should place it in a different directory: The installer should also NOT remove the earlier version. Once this is done, run regedit and change the value of the HKEY_CLASSES_ROOT\CLSID\{ABCD1234-nnnn-nnnn-nnnn-nnnnnnnnnnnn} key to point to the new Java directory.

That was cut and pasted straight from the ticket; I only removed the key. I wrote that there's no programming involved, right? The only action with Java was installing it, right? Right?
We don't have any Java programmers here to make the changes you're saying. We need a solution. Please file a request for support for earlier versions of Java.
That *thwack* you heard was the sound of my head hitting my desk.


  1. Go to
  2. Under "Required" click "Accept License Agreement". The page will refresh.
  3. Click on the first link under Windows Platform: "Winndows Offline Installation, Multi-language"
  4. Click Save
  5. Choose the directory you want to save the installer under
  6. Click OK
  7. Close Internet Explorer.
  8. Open Windows Explorer.
  9. Go to the directory you saved the installer in. If you forget the directory, you can search for the file "jre-1_5_0_07-windows-i586-p.exe"
    0) Double-click the installer
  10. Click Run
  11. Click CUSTOM Setup
  12. Click Accept
  13. The default installation folder is C:\Program Files\Java\jre1.5.0_07\. This is acceptable since it won't overwrite other Java installations.
  14. If you want Java to look nicer, click the icon in front of "Additional Font and Media Support" and select "This feature will be installed on local hard drive."
  15. If you receive an Out of Disk Space warning, click OK, then free up space or choose a different drive location (return to step 14)
  16. All checkboxes should be checked unless you don't want Java to run in a particular browser.
  17. It will take about 2 minutes before the installation is complete.
  18. Click Finish
  19. When the Restart pop-up appears, click "Restart Later"
  20. Click the Windows Start button
  21. Select Run
  22. Type regedit and hit enter.
  23. In the left panel, expand the HKEY_CLASSES_ROOT folder
  24. Scroll down to the CLSID folder and expand that.
  25. Scroll down to the ABCD1234-nnnn-nnnn-nnnn-nnnnnnnnnnnn key
  26. Expand that key
  27. Click on the InProcServer32 folder
  28. In the right panel you'll see a key called default
  29. Click on it
  30. Go back to Windows Explorer
  31. Find the Java 1.3 directory and click on the bin directory
  32. Make sure you see SSV.DLL
  33. Copy the full directory path. You could type Start: Run, then drag that version 1.3 DLL into the Run window. Delete the quotation marks and then copy the string.
  34. Go back to Regedit
  35. Right-click the default key on the right
  36. Select Modify
  37. Type or paste the full path to version 1.3 (see step 31)
  38. Click OK
  39. Close Regedit
In case you're wondering, it took about half an hour for me to tediously replicate the process and ensure I didn't miss a single step.

You sent us detailed steps but we already told you we don't have any Java skillset. Modifying the system Java key isn't authorised since we can't make programmatic changes to Java with no one to test it the repercussions. We need you to file a request to support version 1.3

What the fuck do I write back now?!

Root Cause: 17-Fuckwit.
x-posted to HuSi


Blogger shashwat pulled out a crayon and scribbled:

Awesome. A new born baboon should be able to follow those 39 steps and solve the problem.

Here's an idea. Go ahead, file the request to support 1.3. Make sure that the above email conversation is captured somewhere, and let some other bloke assess it. There may well be a valid reason for supporting 1.3 but heck, this ain't it. The request almost certainly will get rejected (oh, in case, if it does get accepted for this reason, you can start blogging full time). Then let the geniuses out there know that the request was rejected with the following recommendation - to follow those 39 steps.


23 June, 2006 16:24  
Anonymous Anonymous pulled out a crayon and scribbled:


24 June, 2006 00:06  

Post a Comment

Links to this post:

Create a Link

<< Home

In compliance with $MegaCorp's general policies as well as my desire to
continue living under a roof and not the sky or a bus shelter, I add this:

The views expressed on this blog are my own and
do not necessarily reflect the views of $MegaCorp, even if every
single one of my cow-orkers who has discovered this blog agrees with me
and would also like to see the implementation of Root Cause: 17-Fuckwit.