From ea472f873f28a9994eecfb825183502fb5adc6bf Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Sat, 2 Feb 2019 14:24:23 +0000 Subject: [PATCH] Resolves #517 NPE thrown by TalkgroupRangeEditor (#530) --- .../alias/id/talkgroup/TalkgroupEditor.java | 5 +++++ .../alias/id/talkgroup/TalkgroupFormat.java | 17 +++++++++++++++-- .../id/talkgroup/TalkgroupRangeEditor.java | 8 ++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupEditor.java b/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupEditor.java index 8f50a5cc..9d0a37c3 100644 --- a/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupEditor.java +++ b/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupEditor.java @@ -193,6 +193,11 @@ public class TalkgroupEditor extends DocumentListenerEditor { Protocol protocol = mComboProtocol.getItemAt(mComboProtocol.getSelectedIndex()); + if(protocol == null) + { + protocol = Protocol.UNKNOWN; + } + int value = -1; try diff --git a/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupFormat.java b/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupFormat.java index 213ffd6d..e904cf00 100644 --- a/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupFormat.java +++ b/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupFormat.java @@ -83,6 +83,14 @@ public enum TalkgroupFormat return mMaximumValue; } + /** + * Indicates if the value is valid for the protocol + */ + public boolean isValid(int value) + { + return getMinimumValidValue() <= value && value <= getMaximumValidValue(); + } + /** * Short description of the valid value range */ @@ -99,9 +107,14 @@ public enum TalkgroupFormat return mValidRangeHelpText; } - public static TalkgroupFormat get(Protocol prococol) + public static TalkgroupFormat get(Protocol protocol) { - switch(prococol) + if(protocol == null) + { + return UNKNOWN; + } + + switch(protocol) { case APCO25: return APCO25; diff --git a/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupRangeEditor.java b/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupRangeEditor.java index 312e5676..dca54176 100644 --- a/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupRangeEditor.java +++ b/src/main/java/io/github/dsheirer/alias/id/talkgroup/TalkgroupRangeEditor.java @@ -174,6 +174,8 @@ public class TalkgroupRangeEditor extends DocumentListenerEditor TalkgroupRange talkgroupRange = getTalkgroupRange(); + updateEditor(talkgroupRange.getProtocol()); + if(talkgroupRange != null) { mComboProtocol.getModel().setSelectedItem(talkgroupRange.getProtocol()); @@ -202,6 +204,12 @@ public class TalkgroupRangeEditor extends DocumentListenerEditor if(talkgroupRange != null) { Protocol protocol = mComboProtocol.getItemAt(mComboProtocol.getSelectedIndex()); + + if(protocol == null) + { + protocol = Protocol.UNKNOWN; + } + talkgroupRange.setProtocol(protocol); int minValue = -1;