Sometimes the "Run" button will not actually start the program. It will work, though, after pressing "Reset" once.
Apparently sometimes pressing "Compile" will also run the program, but that is probably because a previous "Run" didn't start the program, and compiling resets the interactions Pane.
Among the releases on http://www.cs.rice.edu/~javaplt/drjavarice/ , March 3, 2009 (r4791) is the first that is symptomatic.
I have narrowed it down to revision 4776. This was apparently caused by the change in the synchronization strategy in AbstractMasterJVM and MainJVM.
I seem to be able to reproduce it reliably with any program. Here are the steps I go through:
1. Start DrJava.
2. Open a Java file that has a main method.
3. Press "Compile".
4. Press "Run".
DrJava will now switch to the Interactions Pane showing
Welcome to DrJava. Working directory is /Users/mgricken/Documents/Java
>
but the program will not start, even though it should. Pressing "Run" again does not change the situation.
5. Press "Reset" (and say "Yes") to reset the Interactions Pane.
DrJava executes the program *now*, even though it shouldn't. The output now is:
Welcome to DrJava. Working directory is /Users/mgricken/Documents/Java
> java EmptyMain
>
6. Press "Run" now and DrJava works as expected.
Fixed as of revision 4812.
I located the problem in the reset optimization. If the JVM is in the FreshRunningState and a reset isn't forced, the JVM won't do anything. We want to avoid the work of resetting the interpreter JVM, but we do need the notification that the interpreter JVM is ready now.
The "java.lang.IllegalStateException: MainJVM is disposed" problems remain.