|
|
|
Back to newsletter 046 contents | All Javva's articles
"One early e-commerce site stored the shopping cart contents, including price, in hidden form fields, enabling a relatively simple exploit that allowed any HTML- and HTTP-savvy user to buy any item for $0.01" (Brian Goetz)
Ah, the early days of the commercial web. Such naivety. Such simplicity. So much stupidity.
August. This month, I thought I'd share with you some of the correspondence I have had with my readers.
Dear Mr. Hutt, Assist me. I started my program using 'java Hello World' but I get 'Exception in thread "main" java.lang.NoClassDefFoundError: Hello'. This is a production application which I must tune immediately. --Questor
Dear Questor, your problem is unusual. Your tuning has been so successful that your application is running too fast for the JVM to see the class. It scans the disk for the class, but by the time it finds it, it is already on to the next one and misses the first. You need to slow down the JVM enough that it will see the class, and the NoClassDefFoundError will go away. The best way to do this is to increase the sound volume on the computer to maximum, and play some white noise sound files or Tangerine Dream if you can't get the pure stuff. This is known to slow down the JVM. Do not mute the volume, that negates the slowdown effects. Keep trying until it works. Good luck. --Javva The Hutt
Dear Mr. The Hutt, You clearly have a lot of knowledge about tuning Java programs, please could you help me? I was told that there is a "go faster" button distributed with the Java SDK, but I cannot find it. --Mr. Enquirer
Dear Mr. Enquirer, there certainly is, but we performance experts like to keep it secret because if everyone knew about it, we'd be out of jobs. --Javva The Hutt
Dear Mr. The Hutt, Please could you tell me how to find the button, I promise I'll keep it a secret and not tell anyone how to find it. --Mr. Enquirer
Dear Mr. Enquirer, The button is highly secret, but I do tell one person each year, and I've decided this year that it can be you. The trick is that the code for the button is written in the same color as the background. But that is just one of the tricks keeping it a secret. There is a special hidden file in the java.lang package called Secret.java. It doesn't come in the sources, it is actually contained in the JRE jar file. The only way to see it is to open the JRE jar file and delete all the java.lang classes. Then you have to run the java executable, and it will generate the file. In order to fool unsuspecting people who might do this seqeunce of events accidentally, the JVM prints the following if it has successfully printed the Secret.java file:
"Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object"
The file should now be in the os system directory as a "hidden" file. Find it, open it, change the foreground color to one that is different from the background color, then compile it. Now you have access to the go faster button. Keep this secret please. --Javva The Hutt
Dear Mr. The Hutt, I followed your instructions, and everything worked as you say, but I couldn't find the Secret.java file anywhere on my system. Could you tell me where it is? Also, my java doesn't seem to work anymore. --Mr. Enquirer
Dear Mr. Enquirer, I'm afraid I don't know what you are talking about, I don't know anything about a Secret.java file. Are you confusing me with another correspondent? I have not received any previous email from you. --Javva The Hutt
Back to newsletter 046 contents