]> git.basschouten.com Git - openhab-addons.git/commitdiff
Fix for NPE when playerState is null (#14191)
authorMark Hilbush <mark@hilbush.com>
Tue, 10 Jan 2023 14:02:40 +0000 (09:02 -0500)
committerGitHub <noreply@github.com>
Tue, 10 Jan 2023 14:02:40 +0000 (15:02 +0100)
Signed-off-by: Mark Hilbush <mark@hilbush.com>
bundles/org.openhab.binding.chromecast/src/main/java/org/openhab/binding/chromecast/internal/ChromecastStatusUpdater.java

index 79cc8d62f68dc6c0a727065f8c87fa30244abe30..ea8a7cf0a941ba6486d021cbd517bc6d5fdaf90f 100644 (file)
@@ -157,30 +157,32 @@ public class ChromecastStatusUpdater {
             return;
         }
 
-        switch (mediaStatus.playerState) {
-            case IDLE:
-                break;
-            case PAUSED:
-                callback.updateState(CHANNEL_CONTROL, PlayPauseType.PAUSE);
-                callback.updateState(CHANNEL_STOP, OnOffType.OFF);
-                break;
-            case BUFFERING:
-            case LOADING:
-            case PLAYING:
-                callback.updateState(CHANNEL_CONTROL, PlayPauseType.PLAY);
-                callback.updateState(CHANNEL_STOP, OnOffType.OFF);
-                break;
-            default:
-                logger.debug("Unknown media status: {}", mediaStatus.playerState);
-                break;
+        if (mediaStatus.playerState != null) {
+            switch (mediaStatus.playerState) {
+                case IDLE:
+                    break;
+                case PAUSED:
+                    callback.updateState(CHANNEL_CONTROL, PlayPauseType.PAUSE);
+                    callback.updateState(CHANNEL_STOP, OnOffType.OFF);
+                    break;
+                case BUFFERING:
+                case LOADING:
+                case PLAYING:
+                    callback.updateState(CHANNEL_CONTROL, PlayPauseType.PLAY);
+                    callback.updateState(CHANNEL_STOP, OnOffType.OFF);
+                    break;
+                default:
+                    logger.debug("Unknown media status: {}", mediaStatus.playerState);
+                    break;
+            }
         }
 
         callback.updateState(CHANNEL_CURRENT_TIME, new QuantityType<>(mediaStatus.currentTime, Units.SECOND));
 
         // If we're playing, paused or buffering but don't have any MEDIA information don't null everything out.
         Media media = mediaStatus.media;
-        if (media == null && (mediaStatus.playerState == PLAYING || mediaStatus.playerState == PAUSED
-                || mediaStatus.playerState == BUFFERING)) {
+        if (media == null && (mediaStatus.playerState == null || mediaStatus.playerState == PLAYING
+                || mediaStatus.playerState == PAUSED || mediaStatus.playerState == BUFFERING)) {
             return;
         }