Shuffleboard crashes

Hello,
Starting a few days ago (before the most recent update), Shuffleboard will not load on our driver machine. It works on all of the other machines we have. The latest update did not help. I looked on CD, and tried fixing it using the suggestions from previous games (roll back Java etc).
We have Java 8 installed (as well as the JDK).

The update did not fix it. We tried copying the directories ~\shuffleboard, and files ~\frc2019\tools\ from a working machine to no avail.

We are running Win10 on most of our team machines.

Here is the log…

INFO: Build time: 2019-02-20T18:24:16.304246Z
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:Base:1.1.2
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:Base in 89ms
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:NetworkTables:2.2.5
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:NetworkTables in 19ms
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:CameraServer:2.0.2
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.plugin.cameraserver.CameraServerPlugin onLoad
INFO: OpenCV version: 3.4.4
Feb 20, 2019 1:24:16 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:CameraServer in 404ms
Feb 20, 2019 1:24:17 PM edu.wpi.first.shuffleboard.app.MainWindowController initialize
INFO: Setting up plugins in the UI
Feb 20, 2019 1:24:17 PM edu.wpi.first.shuffleboard.app.Shuffleboard init
WARNING: Took 720ms to load the main FXML
Feb 20, 2019 1:24:22 PM edu.wpi.first.shuffleboard.app.Shuffleboard start
WARNING: Took 6875ms to start Shuffleboard
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.Shuffleboard uncaughtException
WARNING: Uncaught exception on JavaFX Application Thread
java.lang.ClassCastException: class com.google.gson.internal.LazilyParsedNumber cannot be cast to class java.lang.Integer (com.google.gson.internal.LazilyParsedNumber is in unnamed module of loader 'app'; java.lang.Integer is in module java.base of loader 'bootstrap')
	at edu.wpi.first.shuffleboard.plugin.cameraserver.widget.CameraServerWidget.applySettings(CameraServerWidget.java:164)
	at edu.wpi.first.shuffleboard.plugin.cameraserver.widget.CameraServerWidget.lambda$initialize$6(CameraServerWidget.java:125)
	at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:360)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
	at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
	at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
	at edu.wpi.first.shuffleboard.api.widget.SingleSourceWidget.addSource(SingleSourceWidget.java:20)
	at edu.wpi.first.shuffleboard.app.json.WidgetSaver.deserialize(WidgetSaver.java:73)
	at edu.wpi.first.shuffleboard.app.json.WidgetSaver.deserialize(WidgetSaver.java:23)
	at edu.wpi.first.shuffleboard.api.json.ElementTypeAdapter.deserialize(ElementTypeAdapter.java:30)
	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
	at com.google.gson.Gson.fromJson(Gson.java:888)
	at com.google.gson.Gson.fromJson(Gson.java:953)
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162)
	at edu.wpi.first.shuffleboard.app.json.WidgetPaneSaver.deserialize(WidgetPaneSaver.java:74)
	at edu.wpi.first.shuffleboard.app.json.WidgetPaneSaver.deserialize(WidgetPaneSaver.java:24)
	at edu.wpi.first.shuffleboard.api.json.ElementTypeAdapter.deserialize(ElementTypeAdapter.java:30)
	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
	at com.google.gson.Gson.fromJson(Gson.java:888)
	at com.google.gson.Gson.fromJson(Gson.java:953)
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162)
	at edu.wpi.first.shuffleboard.app.json.DashboardTabPaneSaver.deserialize(DashboardTabPaneSaver.java:55)
	at edu.wpi.first.shuffleboard.app.json.DashboardTabPaneSaver.deserialize(DashboardTabPaneSaver.java:22)
	at edu.wpi.first.shuffleboard.api.json.ElementTypeAdapter.deserialize(ElementTypeAdapter.java:30)
	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
	at com.google.gson.Gson.fromJson(Gson.java:888)
	at com.google.gson.Gson.fromJson(Gson.java:826)
	at edu.wpi.first.shuffleboard.app.SaveFileHandler.load(SaveFileHandler.java:115)
	at edu.wpi.first.shuffleboard.app.MainWindowController.load(MainWindowController.java:250)
	at edu.wpi.first.shuffleboard.app.Shuffleboard.lambda$start$3(Shuffleboard.java:116)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	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:834)

Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.Shuffleboard uncaughtException
WARNING: Uncaught exception on JavaFX Application Thread
java.lang.ClassCastException: class com.google.gson.internal.LazilyParsedNumber cannot be cast to class java.lang.Integer (com.google.gson.internal.LazilyParsedNumber is in unnamed module of loader 'app'; java.lang.Integer is in module java.base of loader 'bootstrap')
	at edu.wpi.first.shuffleboard.plugin.cameraserver.widget.CameraServerWidget.applySettings(CameraServerWidget.java:164)
	at edu.wpi.first.shuffleboard.plugin.cameraserver.widget.CameraServerWidget.lambda$initialize$6(CameraServerWidget.java:125)
	at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:360)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:106)
	at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:113)
	at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
	at edu.wpi.first.shuffleboard.api.widget.SingleSourceWidget.addSource(SingleSourceWidget.java:20)
	at edu.wpi.first.shuffleboard.app.json.WidgetSaver.deserialize(WidgetSaver.java:73)
	at edu.wpi.first.shuffleboard.app.json.WidgetSaver.deserialize(WidgetSaver.java:23)
	at edu.wpi.first.shuffleboard.api.json.ElementTypeAdapter.deserialize(ElementTypeAdapter.java:30)
	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
	at com.google.gson.Gson.fromJson(Gson.java:888)
	at com.google.gson.Gson.fromJson(Gson.java:953)
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162)
	at edu.wpi.first.shuffleboard.app.json.WidgetPaneSaver.deserialize(WidgetPaneSaver.java:74)
	at edu.wpi.first.shuffleboard.app.json.WidgetPaneSaver.deserialize(WidgetPaneSaver.java:24)
	at edu.wpi.first.shuffleboard.api.json.ElementTypeAdapter.deserialize(ElementTypeAdapter.java:30)
	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
	at com.google.gson.Gson.fromJson(Gson.java:888)
	at com.google.gson.Gson.fromJson(Gson.java:953)
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162)
	at edu.wpi.first.shuffleboard.app.json.DashboardTabPaneSaver.deserialize(DashboardTabPaneSaver.java:55)
	at edu.wpi.first.shuffleboard.app.json.DashboardTabPaneSaver.deserialize(DashboardTabPaneSaver.java:22)
	at edu.wpi.first.shuffleboard.api.json.ElementTypeAdapter.deserialize(ElementTypeAdapter.java:30)
	at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
	at com.google.gson.Gson.fromJson(Gson.java:888)
	at com.google.gson.Gson.fromJson(Gson.java:826)
	at edu.wpi.first.shuffleboard.app.SaveFileHandler.load(SaveFileHandler.java:115)
	at edu.wpi.first.shuffleboard.app.MainWindowController.load(MainWindowController.java:250)
	at edu.wpi.first.shuffleboard.app.Shuffleboard.lambda$start$3(Shuffleboard.java:116)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	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:834)

Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:23 PM edu.wpi.first.shuffleboard.app.json.WidgetSaver deserialize
WARNING: Saved source type is not present, adding destroyed source(s) instead
Feb 20, 2019 1:24:57 PM edu.wpi.first.shuffleboard.app.Shuffleboard stop
INFO: Running shutdown hooks
Feb 20, 2019 1:24:57 PM edu.wpi.first.shuffleboard.app.Shuffleboard stop
INFO: Shutting down

Thank you.
Mr. R^2

Is there some kind of log/saved state file on that computer? Just from a quick skim of the error log, it looks like it’s failing to deserialize a save file (specifically part related to a camera)

Try deleting (back up if you need it after) %userprofile%/Shuffleboard then opening ShuffleBoard again.

Thanks.
I think I know what caused this, but am still not certain how to fix it. It is a laptop (obviously if it is to be the driver station). A few days ago, the battery died while connected to the robot. I bet that is what created the locked file, but I do not know where it is.

I think we deleted the %userprofile%/shuffleboard folder already, but perhaps we did not. I will check tomorrow.

I spent a long time going through it today. Here is what I discovered.

  1. If I delete all of the wpilib programs and data I can find, and reinstall, it still crashes (with the same error).
  2. If I create a different user, it works (however robotpy does not because apparently pypi stores its downloads in the user folder somewhere).
  3. I cannot find where this cached and locked file is, but I am pretty certain that it is in the userspace somewhere.

Does anyone have any other thoughts about where I can look?

Thank you.
~Mr. R^2

The cameraserver error when loading save files was fixed in the 2019.2.1 release. It didn’t make the app crash, though - it just made saved camera settings not be loaded.

What locked file are you referring to? What is the “same error” you mention?

@SamCarlberg,
Thanks. I assumed that since this is crashing Shuffleboard on launch, that the unhandled exceptions in the log file (this is the error I referred to) is that the shuffleboard could neither read nor write to a locked file.
It crashes when it gets to the network tables, and sometimes shows the log above. I think we are using the newest version of the software.

Edit…
I just checked, we have been using the latest (2019.3.2)

Here is the latest log…

INFO: Build time: 2019-02-21T23:59:20.745020600Z
Feb 21, 2019 5:59:20 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:Base:1.1.4
Feb 21, 2019 5:59:20 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:Base in 104ms
Feb 21, 2019 5:59:21 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:NetworkTables:2.2.5
Feb 21, 2019 5:59:21 PM edu.wpi.first.shuffleboard.app.Main lambda$main$0
SEVERE: Uncaught exception on thread `main`.
java.lang.RuntimeException: Exception in Application init method
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:895)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NumberFormatException: For input string: "//roborio-6762-frc.local/"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Integer.parseInt(Integer.java:638)
	at java.base/java.lang.Integer.parseInt(Integer.java:770)
	at edu.wpi.first.shuffleboard.plugin.networktables.NetworkTablesPlugin.lambda$new$2(NetworkTablesPlugin.java:71)
	at edu.wpi.first.shuffleboard.plugin.networktables.NetworkTablesPlugin.onLoad(NetworkTablesPlugin.java:117)
	at edu.wpi.first.shuffleboard.app.plugin.PluginLoader.load(PluginLoader.java:303)
	at edu.wpi.first.shuffleboard.app.Shuffleboard.init(Shuffleboard.java:82)
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:824)
	... 2 more

I wonder if the error is that it is trying to connect to the robot to load a widget…

Looks like you’ve set the NetworkTables server address to http://roborio-6762-frc.local/

Server addresses are assumed to leave the protocol out and just be in the format host:port, which is causing the issue.

Since this prevents Shuffleboard from loading entirely, you’d have to go to the Windows registry editor and remove or change the "server" key for the edu.wpi.first.shuffleboard.plugin.networktables entry under HKEY_CURRENT_USER\SOFTWARE\JavaSoft

I’ll open a fix for this, but in the meantime please just use your team number (or a hardcoded IPv4 address if you want to skip mDNS) as the server address

2 Likes

Thank you so much. That is why the other user did not have the issue. It is in HKEY_CURRENT_USER…

[Edit]That worked.[/Edit]

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.