]> nmode's Git Repositories - signal-cli/commitdiff
Handle UnsupportedOperationException in daemon command
authorAsamK <asamk@gmx.de>
Sun, 20 Feb 2022 09:02:15 +0000 (10:02 +0100)
committerAsamK <asamk@gmx.de>
Sun, 20 Feb 2022 13:22:53 +0000 (14:22 +0100)
src/main/java/org/asamk/signal/commands/DaemonCommand.java

index 7c972496dc919dacf57dd440d538c3af3e8fb0a7..4e43aa99a4b60a2c043917cbc19e0fe4b822b74b 100644 (file)
@@ -10,6 +10,7 @@ import org.asamk.signal.ReceiveMessageHandler;
 import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
+import org.asamk.signal.commands.exceptions.UserErrorException;
 import org.asamk.signal.dbus.DbusSignalControlImpl;
 import org.asamk.signal.dbus.DbusSignalImpl;
 import org.asamk.signal.json.JsonReceiveMessageHandler;
@@ -282,7 +283,7 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
 
     private void runDbusSingleAccount(
             final Manager m, final boolean isDbusSystem, final boolean noReceiveOnStart
-    ) throws UnexpectedErrorException {
+    ) throws CommandException {
         runDbus(isDbusSystem, (conn, objectPath) -> {
             try {
                 exportDbusObject(conn, objectPath, m, noReceiveOnStart).join();
@@ -293,7 +294,7 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
 
     private void runDbusMultiAccount(
             final MultiAccountManager c, final boolean noReceiveOnStart, final boolean isDbusSystem
-    ) throws UnexpectedErrorException {
+    ) throws CommandException {
         runDbus(isDbusSystem, (connection, objectPath) -> {
             final var signalControl = new DbusSignalControlImpl(c, objectPath);
             connection.exportObject(signalControl);
@@ -332,7 +333,7 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
 
     private void runDbus(
             final boolean isDbusSystem, DbusRunner dbusRunner
-    ) throws UnexpectedErrorException {
+    ) throws CommandException {
         DBusConnection.DBusBusType busType;
         if (isDbusSystem) {
             busType = DBusConnection.DBusBusType.SYSTEM;
@@ -345,6 +346,8 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand {
             dbusRunner.run(conn, DbusConfig.getObjectPath());
         } catch (DBusException e) {
             throw new UnexpectedErrorException("Dbus command failed: " + e.getMessage(), e);
+        } catch (UnsupportedOperationException e) {
+            throw new UserErrorException("Failed to connect to Dbus: " + e.getMessage(), e);
         }
 
         try {