Wednesday, June 20, 2007

Rowid Madness

For years the first of my interview questions for Oracle developers has been one in which I ask them to explain why it's a bad idea to use the ROWID of table 'A' as a foreign key to table 'B'. This is not hard for a competant person to answer, as ROWID changes when you import the data into another database which will happen sooner or later. It never occured to me that someone could be crazy enough to actually do this, but someone has.


[This post originally appeared on JRoller]

Labels:

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]

Labels:

Privacy Policy
Legal Terms
Site Map
About Us