Tuesday, November 25, 2008

java again

I got a new computer and tried the openinfocard id selector with it; but Boom the Java code did not run. Hm, I forgot to install a new version. Preinstalled was some Java 1.4 version... I installed Java 1.6 update 10 and tried again, but again it failed. Ahh, the new java plugin for Firefox hit me again.
Error calling method on NPObject! [plugin exception: java.security.AccessControlException: access denied (java.security.SecurityPermission getPolicy)]

I had to set HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\1.6.0_10\UseNewJavaPlugin from 1 to 0 to disable the new plugin.

After that the openinfocard selector worked again.

Sun promised to fix this in Java 1.6 update 12 but there is no early access version available...
Another bug in the new plugin is that it does not implement the instanceof operator for Java objects.

Kenneth from Sun suggested a workaround: Have to change
if (!(bootstrapClassLoader instanceof java.net.URLClassLoader)) {
if (!(bootstrapClassLoader.getClass().isInstance(java.lang.Class.forName("java.net.URLClassLoader")))) {

For this bug there is not even a promise to fix it... Well, thank you SUN for making my life interesting; NOT.


Eric Norman said...


If you want your code to be widely usable, then you need to devote serious energy to making sure that it does not require the latest and greatest version of anything and everything.

My suggestion is to do development on a system that is "obsolete" by at least three years.

Axel Nennker said...

Java 1.4.2 has reached its end-of-live. http://java.sun.com/j2se/1.4.2/
The code should not contain many java-1.5-isms and should be either compilable using javac-1.4 or easy to modify to make it work... If you really must?!

I once tried to port the code to j2me which is java-1.3. Not funny.

Regarding browser versions... FF2 will not live much longer. Everybody should use FF3 soon.

If you have problems with a version, OS or distribution then please file an issue at the code repository. I will then try to (help to) resolve the issue.

MacOS and Java is another story. One version of MacOS has working Java while others have issues. Difficult to maintain for a one-man project. From time to time I try it on Macs too.