From 2c558ce9290e12569f953e00f13b6b55d6dab18c Mon Sep 17 00:00:00 2001 From: Denny Date: Sun, 8 Jan 2017 04:44:13 -0500 Subject: [PATCH] #93 resolves issue with NPE when an exception is handled in the audio broadcaster exception handler --- .../icecast/IcecastTCPAudioBroadcaster.java | 15 ++++++++++++--- .../shoutcast/v1/ShoutcastV1AudioBroadcaster.java | 15 ++++++++++++--- .../shoutcast/v2/ShoutcastV2AudioBroadcaster.java | 15 ++++++++++++--- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java b/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java index 69d49f1c..693ad674 100644 --- a/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java +++ b/src/audio/broadcast/icecast/IcecastTCPAudioBroadcaster.java @@ -243,9 +243,18 @@ public class IcecastTCPAudioBroadcaster extends IcecastAudioBroadcaster { if(cause instanceof IOException && ((IOException)cause).getMessage().startsWith("Connection reset")) { - mLog.info("Streaming connection reset by remote server - reestablishing connection"); - disconnect(); - connect(); + IOException ioe = (IOException)cause; + + if(ioe.getMessage() != null && ioe.getMessage().startsWith("Connection reset")) + { + mLog.info("Streaming connection reset by remote server - reestablishing connection"); + disconnect(); + connect(); + } + else + { + mLog.error("IO Exception", ioe); + } } else { diff --git a/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java b/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java index 9d376174..8c031150 100644 --- a/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java +++ b/src/audio/broadcast/shoutcast/v1/ShoutcastV1AudioBroadcaster.java @@ -244,9 +244,18 @@ public class ShoutcastV1AudioBroadcaster extends AudioBroadcaster { if(cause instanceof IOException && ((IOException)cause).getMessage().startsWith("Connection reset")) { - mLog.info("Streaming connection reset by remote server - reestablishing connection"); - disconnect(); - connect(); + IOException ioe = (IOException)cause; + + if(ioe.getMessage() != null && ioe.getMessage().startsWith("Connection reset")) + { + mLog.info("Streaming connection reset by remote server - reestablishing connection"); + disconnect(); + connect(); + } + else + { + mLog.error("IO Exception", ioe); + } } else { diff --git a/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java b/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java index 57a80596..04c60c61 100644 --- a/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java +++ b/src/audio/broadcast/shoutcast/v2/ShoutcastV2AudioBroadcaster.java @@ -370,9 +370,18 @@ public class ShoutcastV2AudioBroadcaster extends AudioBroadcaster implements IBr { if(cause instanceof IOException && ((IOException)cause).getMessage().startsWith("Connection reset")) { - mLog.info("Streaming connection reset by remote server - reestablishing connection"); - disconnect(); - connect(); + IOException ioe = (IOException)cause; + + if(ioe.getMessage() != null && ioe.getMessage().startsWith("Connection reset")) + { + mLog.info("Streaming connection reset by remote server - reestablishing connection"); + disconnect(); + connect(); + } + else + { + mLog.error("IO Exception", ioe); + } } else {