Monday, April 25, 2011

Java applet white screen

I'm trying to get to the bottom of a problem with our Java applet based program. It quite regularly seizes up with an unresponsive GUI (or a white screen). This of course only happens when deployed at a customer site :-(. They are running a version of the Sun JVM in 1.5 series (not sure the exact release).

We have a theory that it's to do with the applet running out of heap space - does that sound plausible? The other thing that I have set up on my machine is disabling direct draw, but that was mainly to avoid weird artefacts on other applications.

They are seeing the problem on Citrix and on regular PCs, but obviously there is a limit to what the users on Citrix can do.

Any suggestions?

From stackoverflow
  • In order to solve the problem, you must first be able to reproduce the problem. You will need an identical system in order to troubleshoot this, making one change at a time while keeping everything else equal to determine the cause(s).

    Allain Lalonde : "In order to solve the problem, you must first be able to reproduce the problem." Not true. It helps, but you'll never have a system exactly like the system it occurs on.
    Greg Reynolds : Absolutely - I have no access to a Citrix system for a start, or 40 concurrent users even if I did!
  • First of all ensure the customer uses the latest release of the JVM they are using, and make them enable the Java console inside their browser (this requires some research from you).

    Then when it happens again, tell them to look at the console window and cut-paste the contents in a mail to you.

  • Running out of heap space should cause an OutOfMemoryError to be thrown. This case sounds like a typical deadlock. To find where that is you want a stack dump of all the threads. IIRC< you can do it through the console, or from IIRC 1.6 the JDK includes jps and jstack.

    Greg Reynolds : Thanks - I'll see what they come back with. I expect the console will show that or the out of memory error.
  • Just to add to this answer (to build the knowledge base as I'm currently looking into this).

    There's (at least) 2 distinct white screens related to applets.

    1. Deadlock (as mentioned by Tom) - area will not refresh when you drag a window in front of it, so you get the strange tails left effect.

    2. VM crash - area will become white, Java VM closes (search for hs_err_pid*.log, location dependent on browser)


Post a Comment