From 9a1b9bf70d8f1a38816666d67a5689ad17d23c13 Mon Sep 17 00:00:00 2001 From: Filip Jonckers Date: Sat, 8 Jan 2022 00:26:17 +0100 Subject: [PATCH] fix null pointer exception on invalid DF packet --- gradle.properties | 2 +- src/main/java/aero/t2s/modes/ModeSTrackHandler.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0d03f4d..2e29164 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=aero.t2s -VERSION_NAME=0.2.3-SNAPSHOT +VERSION_NAME=0.2.4-SNAPSHOT POM_ARTIFACT_ID=mode-s POM_NAME=Mode-S/ADS-B (1090Mhz) diff --git a/src/main/java/aero/t2s/modes/ModeSTrackHandler.java b/src/main/java/aero/t2s/modes/ModeSTrackHandler.java index db19904..16b7220 100644 --- a/src/main/java/aero/t2s/modes/ModeSTrackHandler.java +++ b/src/main/java/aero/t2s/modes/ModeSTrackHandler.java @@ -59,6 +59,12 @@ public void handle(final String input) { public DownlinkFormat handleSync(final String input) { try { DownlinkFormat df = decoder.decode(toData(input)); + if(df == null) { + // invalid packet (Mode A/C like *21D2; *0200; *0101;) + LOGGER.debug("DF Message could not be parsed: [{}]", input); + return null; + } + Track track = decoder.getTrack(df.getIcao()); if (track == null) { @@ -83,7 +89,7 @@ public DownlinkFormat handleSync(final String input) { } catch (InvalidExtendedSquitterTypeCodeException | UnknownDownlinkFormatException e) { LOGGER.error(e.getMessage()); } catch (Throwable throwable) { - LOGGER.error("Message could not be parsed: [" + input + "]", throwable); + LOGGER.error("DF Message could not be parsed: [" + input + "]", throwable); } return null;