When writing an applet with Clojure I discovered the following bug:
Whenever a class with a -main function is loaded (e.g. by :use), the
applet is broken (Java 6 with new plugin technology):
java.lang.NullPointerException
at sun.plugin2.applet.Plugin2Manager.findAppletJDKLevel
(Plugin2Manager.java:2996)
at sun.plugin2.applet.Plugin2Manager.createApplet
(Plugin2Manager.java:2947)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run
(Plugin2Manager.java:1397)
at java.lang.Thread.run(Thread.java:619)
You can very easily reproduce the problem with the following
experiment I prepared:
http://www.xenoage.com/extern/bugreports/clojure-main-problem.zip
First, look at the .clj files. There are three identical (minimal)
applets. Each uses another (minimal) file: One uses a class with a -
main method, one uses a class with no main method and the third one
uses a renamed main method.
Now, compile the files by calling the build.sh script. When finished,
open the HTML files in the browser. You will see that the two applets
without -main functions work, but the applet with the -main function
fails.
I guess, this is a bug in Clojure?