< prev index next >

apps/toys/Hello/src/main/java/hello/HelloLaunchOnNewThread.java

Print this page
rev 9619 : [mq]: 9-jake.patch

@@ -23,27 +23,34 @@
  * questions.
  */
 
 package hello;
 
+import java.util.concurrent.atomic.AtomicBoolean;
 import javafx.application.Application;
 import javafx.scene.Group;
 import javafx.scene.Scene;
 import javafx.scene.paint.Color;
 import javafx.scene.shape.Rectangle;
 import javafx.stage.Stage;
 
 public class HelloLaunchOnNewThread extends Application {
 
     static long startTime;
+    static AtomicBoolean mainCalled = new AtomicBoolean(false);
 
     public HelloLaunchOnNewThread() {
         long endTime = System.nanoTime();
         long elapsedMsec = (endTime - startTime + 500000) / 1000000;
         System.err.println("DONE: elapsed time = " + elapsedMsec + " msec");
         System.err.println("Constructor: currentThread="
                 + Thread.currentThread().getName());
+        if (!mainCalled.get()) {
+            System.err.println("***************************************");
+            System.err.println("*** ERROR: main() method not called ***");
+            System.err.println("***************************************");
+        }
     }
 
     @Override public void init() {
         System.err.println("init: currentThread="
                 + Thread.currentThread().getName());

@@ -79,10 +86,11 @@
 
     /**
      * @param args the command line arguments
      */
     public static void main(final String[] args) {
+        mainCalled.set(true);
         System.err.println("main: currentThread="
                 + Thread.currentThread().getName());
         new Thread(() -> {
             // Sleep for a very short time to ensure main thread exits,
             // since that will provoke RT-9824
< prev index next >