]> git.basschouten.com Git - openhab-addons.git/commitdiff
[denonmarantz] Fix NPE on connection problem (#15422)
authorlsiepel <leosiepel@gmail.com>
Fri, 18 Aug 2023 14:33:39 +0000 (16:33 +0200)
committerGitHub <noreply@github.com>
Fri, 18 Aug 2023 14:33:39 +0000 (16:33 +0200)
* Checkstyle cleanup
* Fix #15444

Signed-off-by: lsiepel <leosiepel@gmail.com>
bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/DenonMarantzStateChangedListener.java
bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetClientThread.java
bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetConnector.java
bundles/org.openhab.binding.denonmarantz/src/main/java/org/openhab/binding/denonmarantz/internal/connector/telnet/DenonMarantzTelnetListener.java

index 72ac7ce6a0cddc5cf6f2c3b444a672e8214fccdb..1feddeefac6c84f677c342d41e623991687a3338 100644 (file)
  */
 package org.openhab.binding.denonmarantz.internal;
 
-import org.openhab.binding.denonmarantz.internal.handler.DenonMarantzHandler;
 import org.openhab.core.types.State;
 
 /**
- * Interface to notify the {@link DenonMarantzHandler} about state changes.
+ * Interface to notify the {@link org.openhab.binding.denonmarantz.internal.handler.DenonMarantzHandler} about state
+ * changes.
  *
  * @author Jan-Willem Veldhuis - Initial contribution
  *
index 0b4747271759d34e3ee971f53ee226f8c26a7b78..a2fd6f3b7bc9355e8909c525af16892410243635 100644 (file)
@@ -20,6 +20,7 @@ import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.SocketTimeoutException;
 
+import org.eclipse.jdt.annotation.Nullable;
 import org.openhab.binding.denonmarantz.internal.config.DenonMarantzConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,7 +49,7 @@ public class DenonMarantzTelnetClientThread extends Thread {
 
     private OutputStreamWriter out;
 
-    private BufferedReader in;
+    private @Nullable BufferedReader in;
 
     public DenonMarantzTelnetClientThread(DenonMarantzConfiguration config, DenonMarantzTelnetListener listener) {
         logger.debug("Denon listener created");
@@ -65,7 +66,11 @@ public class DenonMarantzTelnetClientThread extends Thread {
 
             do {
                 try {
-                    String line = in.readLine();
+                    String line = null;
+                    BufferedReader in = this.in;
+                    if (in != null) {
+                        line = in.readLine();
+                    }
                     if (line == null) {
                         logger.debug("No more data read from client. Disconnecting..");
                         listener.telnetClientConnected(false);
index d5b517407280fb4430eef5645ab1328233b3a310..2e9c73a838522fcf9c2134acb4d6d441a0e7a65e 100644 (file)
@@ -157,8 +157,8 @@ public class DenonMarantzTelnetConnector extends DenonMarantzConnector implement
                     state.setInput(value);
                     break;
                 case "PW": // Power
-                    if (value.equals("ON") || value.equals("STANDBY")) {
-                        state.setPower(value.equals("ON"));
+                    if ("ON".equals(value) || "STANDBY".equals(value)) {
+                        state.setPower("ON".equals(value));
                     }
                     break;
                 case "MS": // Main zone surround program
@@ -170,18 +170,18 @@ public class DenonMarantzTelnetConnector extends DenonMarantzConnector implement
                     }
                     break;
                 case "MU": // Main zone mute
-                    if (value.equals("ON") || value.equals("OFF")) {
-                        state.setMute(value.equals("ON"));
+                    if ("ON".equals(value) || "OFF".equals(value)) {
+                        state.setMute("ON".equals(value));
                     }
                     break;
                 case "NS": // Now playing information
                     processTitleCommand(value);
                     break;
                 case "Z2": // Zone 2
-                    if (value.equals("ON") || value.equals("OFF")) {
-                        state.setZone2Power(value.equals("ON"));
-                    } else if (value.equals("MUON") || value.equals("MUOFF")) {
-                        state.setZone2Mute(value.equals("MUON"));
+                    if ("ON".equals(value) || "OFF".equals(value)) {
+                        state.setZone2Power("ON".equals(value));
+                    } else if ("MUON".equals(value) || "MUOFF".equals(value)) {
+                        state.setZone2Mute("MUON".equals(value));
                     } else if (value.chars().allMatch(Character::isDigit)) {
                         state.setZone2Volume(fromDenonValue(value));
                     } else {
@@ -189,10 +189,10 @@ public class DenonMarantzTelnetConnector extends DenonMarantzConnector implement
                     }
                     break;
                 case "Z3": // Zone 3
-                    if (value.equals("ON") || value.equals("OFF")) {
-                        state.setZone3Power(value.equals("ON"));
-                    } else if (value.equals("MUON") || value.equals("MUOFF")) {
-                        state.setZone3Mute(value.equals("MUON"));
+                    if ("ON".equals(value) || "OFF".equals(value)) {
+                        state.setZone3Power("ON".equals(value));
+                    } else if ("MUON".equals(value) || "MUOFF".equals(value)) {
+                        state.setZone3Mute("MUON".equals(value));
                     } else if (value.chars().allMatch(Character::isDigit)) {
                         state.setZone3Volume(fromDenonValue(value));
                     } else {
@@ -200,10 +200,10 @@ public class DenonMarantzTelnetConnector extends DenonMarantzConnector implement
                     }
                     break;
                 case "Z4": // Zone 4
-                    if (value.equals("ON") || value.equals("OFF")) {
-                        state.setZone4Power(value.equals("ON"));
-                    } else if (value.equals("MUON") || value.equals("MUOFF")) {
-                        state.setZone4Mute(value.equals("MUON"));
+                    if ("ON".equals(value) || "OFF".equals(value)) {
+                        state.setZone4Power("ON".equals(value));
+                    } else if ("MUON".equals(value) || "MUOFF".equals(value)) {
+                        state.setZone4Mute("MUON".equals(value));
                     } else if (value.chars().allMatch(Character::isDigit)) {
                         state.setZone4Volume(fromDenonValue(value));
                     } else {
@@ -211,8 +211,8 @@ public class DenonMarantzTelnetConnector extends DenonMarantzConnector implement
                     }
                     break;
                 case "ZM": // Main zone
-                    if (value.equals("ON") || value.equals("OFF")) {
-                        state.setMainZonePower(value.equals("ON"));
+                    if ("ON".equals(value) || "OFF".equals(value)) {
+                        state.setMainZonePower("ON".equals(value));
                     }
                     break;
             }
index 89b8ef9b624488a94f398f90241fbee844dd66b0..cade1405404778fb8af93e9cac657b1deeec5ec3 100644 (file)
  */
 package org.openhab.binding.denonmarantz.internal.connector.telnet;
 
-import org.openhab.binding.denonmarantz.internal.connector.DenonMarantzConnector;
-
 /**
- * Listener interface used to notify the {@link DenonMarantzConnector} about received messages over Telnet
+ * Listener interface used to notify the
+ * {@link org.openhab.binding.denonmarantz.internal.connector.DenonMarantzConnector} about received messages over Telnet
  *
  * @author Jan-Willem Veldhuis - Initial contribution
  *