From f5299a583824783008120798258a9d4d3a4e3351 Mon Sep 17 00:00:00 2001 From: Kevin Cooney Date: Sun, 14 Sep 2025 17:09:07 -0700 Subject: [PATCH] Delete ".registeredTo" Preferences keys These were marked as persistent by the Listener installed by Preferences. Tested on the simulator. --- src/main/java/com/team2813/AllPreferences.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/com/team2813/AllPreferences.java b/src/main/java/com/team2813/AllPreferences.java index aced1efc..a36e43a7 100644 --- a/src/main/java/com/team2813/AllPreferences.java +++ b/src/main/java/com/team2813/AllPreferences.java @@ -46,6 +46,17 @@ static synchronized void migrateLegacyPreferences() { } } + // Preferences installs a listener that makes all new topics persistent, so these values can be + // written even if we explicitly marked them as not persistent. Delete them to avoid possible + // exceptions from PersistedConfiguration. + // + // For a long-term fix, see https://github.com/Prospect-Robotics/lib2813/pull/58. + for (var key : Preferences.getKeys()) { + if (key.endsWith(".registeredTo")) { + Preferences.remove(key); + } + } + migrateDrivePreferences( DRIVE_BOOLEAN_PREFERENCE_KEYS, AllPreferences::booleanPreferenceMigrator); migrateDrivePreferences(DRIVE_DOUBLE_PREFERENCE_KEYS, AllPreferences::doublePreferenceMigrator);