Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8244823

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException

XMLWordPrintable

    • x86_64
    • windows_10

      ADDITIONAL SYSTEM INFORMATION :
      Windows 10, JDK13.0.1, JavaFX 15-ea+2

      A DESCRIPTION OF THE PROBLEM :
      Hello!

      I wrote a JavaFX-App pinging several devices. The status of the devices is monitored by circles (here "lamps"). - No response: circle gets red; response: circle gets green. This is provided by calling the call-method in a class extending Task. It updates the color of the circle-attribute by the setFill-method.

      The program is able to run for hours, but somewhen the ui crashes, while pining goes on:

      Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
      at javafx.scene.Scene$ScenePulseListener.synchronizeSceneNodes(Scene.java:2393)
      at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2540)
      at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
      at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
      at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
      at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
      at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:563)
      at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:543)
      at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:536)
      at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:342)
      at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
      at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
      at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
      at java.base/java.lang.Thread.run(Thread.java:830)

      Snippet of the call()-method in the extending class:

      while(App.isRunning())
      {
         for(Device device : deviceList)
          {
      InetAddress geek;

      try {
      geek = InetAddress.getByName(device.getIp());
      if (geek.isReachable(3000)) {
      device.getLamp().setFill(Paint.valueOf("66FF00"));
      } else {
      device.getLamp().setFill(Paint.valueOf("E30022"));
      }
      } catch (IOException e) {
      e.printStackTrace();
      }
           }
       }



      FREQUENCY : always


            kcr Kevin Rushforth
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: