]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/VerifyCommand.java
Fix null pointer regression
[signal-cli] / src / main / java / org / asamk / signal / commands / VerifyCommand.java
index ae0017af0d96e644401c814143cca8bd98b2e814..6a5046bc79c11bee39f68200c55e3736d5c6084c 100644 (file)
@@ -5,14 +5,15 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
-import org.asamk.signal.JsonWriter;
 import org.asamk.signal.OutputType;
 import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.commands.exceptions.UserErrorException;
 import org.asamk.signal.manager.RegistrationManager;
 import org.asamk.signal.manager.api.IncorrectPinException;
+import org.asamk.signal.manager.api.PinLockMissingException;
 import org.asamk.signal.manager.api.PinLockedException;
+import org.asamk.signal.output.JsonWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -21,7 +22,7 @@ import java.util.List;
 
 public class VerifyCommand implements RegistrationCommand, JsonRpcRegistrationCommand<VerifyCommand.VerifyParams> {
 
-    private final static Logger logger = LoggerFactory.getLogger(VerifyCommand.class);
+    private static final Logger logger = LoggerFactory.getLogger(VerifyCommand.class);
 
     @Override
     public String getName() {
@@ -55,13 +56,17 @@ public class VerifyCommand implements RegistrationCommand, JsonRpcRegistrationCo
 
     @Override
     public void handleCommand(
-            final VerifyParams request, final RegistrationManager m, final JsonWriter jsonWriter
+            final VerifyParams request,
+            final RegistrationManager m,
+            final JsonWriter jsonWriter
     ) throws CommandException {
         verify(m, request.verificationCode(), request.pin());
     }
 
     private void verify(
-            final RegistrationManager m, final String verificationCode, final String pin
+            final RegistrationManager m,
+            final String verificationCode,
+            final String pin
     ) throws UserErrorException, IOErrorException {
         try {
             m.verifyAccount(verificationCode, pin);
@@ -72,10 +77,12 @@ public class VerifyCommand implements RegistrationCommand, JsonRpcRegistrationCo
                             + "\nUse '--pin PIN_CODE' to specify the registration lock PIN");
         } catch (IncorrectPinException e) {
             throw new UserErrorException("Verification failed! Invalid pin, tries remaining: " + e.getTriesRemaining());
+        } catch (PinLockMissingException e) {
+            throw new UserErrorException("Account is pin locked, but pin data has been deleted on the server.");
         } catch (IOException e) {
             throw new IOErrorException("Verify error: " + e.getMessage(), e);
         }
     }
 
-    record VerifyParams(String verificationCode, String pin) {}
+    public record VerifyParams(String verificationCode, String pin) {}
 }