Wednesday, June 6, 2007

Why '43113f...0308' is bad news for Java users...

While going through our web server logs recently we found out that we had our first single word google hit. Unfortunately the word in question is 43113f32554e54494d45110e4350500308,
which we suspect isn't terribly memorable. It's thrown as an error id when the JVM crashes and is referred to in the support section of our web site.

We've now had hundreds of people show up at our web site trying to find out about this. We suspect we may see many more, as the underlying problem appears to affect all applications that use the Java 1.3 or 1.4 JVMs.

If you encounter this you will find the following information useful:

    • This is Sun bug 4820592.
    • The bug appears to be limited to x86 based systems.
    • The bug will appear as a JVM crash after the application has done a fair amount of work.
    • If you try and use the 'debug' mode of an IDE such as Eclipse the JVM crash will take place at odd and changing locations.
    • Using interpreted mode ('-Xint') is an effective workaround.
    • Changing other JVM parameters may postpone the crash but will not prevent it.
    • To prevent it you can:
      • Move to Java 1.5
      • Rewrite your code.
In our case we were able to fix the problem by replacing an ArrayList of String[] with an ArrayList of File, with each File containing 0 or more String. We suspect that the presence of zero length 'String[]'s in the arraylist was the root cause of the problem.

[This post originally appeared on JRoller]

No comments: