From d957846ab0e013cfa0c9cb7b8996af48f91841f8 Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Thu, 11 Jun 2020 04:59:15 -0400 Subject: [PATCH] #837 Sorted list ArrayIndexOutOfBoundsException during alias save. (#858) Co-authored-by: Denny --- .../gui/playlist/alias/AliasItemEditor.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/dsheirer/gui/playlist/alias/AliasItemEditor.java b/src/main/java/io/github/dsheirer/gui/playlist/alias/AliasItemEditor.java index a2441cce..ac4c855d 100644 --- a/src/main/java/io/github/dsheirer/gui/playlist/alias/AliasItemEditor.java +++ b/src/main/java/io/github/dsheirer/gui/playlist/alias/AliasItemEditor.java @@ -330,12 +330,9 @@ public class AliasItemEditor extends Editor if(alias != null) { - alias.setName(getNameField().getText()); - alias.setGroup(getGroupField().getText()); alias.setRecordable(getRecordAudioToggleSwitch().isSelected()); alias.setColor(ColorUtil.toInteger(getColorPicker().getValue())); - Icon icon = getIconNodeComboBox().getSelectionModel().getSelectedItem(); alias.setIconName(icon != null ? icon.getName() : null); @@ -377,6 +374,27 @@ public class AliasItemEditor extends Editor { alias.addAliasAction(aliasAction); } + + //Hack: because we're using a sorted list for the alias editor, sometimes setting + //name and or group can cause list errors. So, we wrap each of these in a try/catch + //block to mitigate the error and effect the changes. + try + { + alias.setName(getNameField().getText()); + } + catch(Exception e) + { + mLog.error("Error while updating alias name.", e); + } + + try + { + alias.setGroup(getGroupField().getText()); + } + catch(Exception e) + { + mLog.error("Error while updating alias group value", e); + } } AliasList aliasList = mPlaylistManager.getAliasModel().getAliasList(alias.getAliasListName());