From 8dcadd7a35e591cb2dc1174ba67dbb2a2ac2951b Mon Sep 17 00:00:00 2001 From: Bart Sopers Date: Sat, 30 Nov 2019 20:12:26 +0100 Subject: [PATCH] add failure certainty to OmnipodException --- .../pump/omnipod/driver/comm/AapsOmnipodManager.java | 10 ++++++---- .../exception/ActionInitializationException.java | 5 +++++ .../exception/CommandInitializationException.java | 5 +++++ .../pump/omnipod/exception/CommunicationException.java | 5 +++++ .../pump/omnipod/exception/CrcMismatchException.java | 5 +++++ .../exception/IllegalDeliveryStatusException.java | 5 +++++ .../omnipod/exception/IllegalPacketTypeException.java | 5 +++++ .../omnipod/exception/IllegalPodProgressException.java | 5 +++++ .../omnipod/exception/IllegalResponseException.java | 5 +++++ .../exception/IllegalSetupProgressException.java | 5 +++++ .../omnipod/exception/MessageDecodingException.java | 5 +++++ .../pump/omnipod/exception/NonceResyncException.java | 5 +++++ .../pump/omnipod/exception/NotEnoughDataException.java | 5 +++++ .../pump/omnipod/exception/OmnipodException.java | 2 ++ .../pump/omnipod/exception/PodFaultException.java | 5 +++++ .../exception/PodReturnedErrorResponseException.java | 5 +++++ 16 files changed, 78 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java index 25ad780f54..50e64467e1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java @@ -341,12 +341,14 @@ public class AapsOmnipodManager implements OmnipodCommunicationManagerInterface // Shouldn't be reachable comment = getStringResource(R.string.omnipod_driver_error_unexpected_exception_type, ex.getClass().getName()); } + if (loggingEnabled()) { + LOG.error(String.format("Caught OmnipodException[certainFailure=%s] from OmnipodManager (user-friendly error message: %s)", ((OmnipodException) ex).isCertainFailure(), comment), ex); + } } else { comment = getStringResource(R.string.omnipod_driver_error_unexpected_exception_type, ex.getClass().getName()); - } - - if (loggingEnabled()) { - LOG.error(String.format("Caught OmnipodManager exception (user-friendly error message: %s)", comment), ex); + if (loggingEnabled()) { + LOG.error(String.format("Caught unexpected exception type from OmnipodManager (user-friendly error message: %s)", comment), ex); + } } return comment; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/ActionInitializationException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/ActionInitializationException.java index 306873b20e..b2dd17210b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/ActionInitializationException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/ActionInitializationException.java @@ -4,4 +4,9 @@ public class ActionInitializationException extends OmnipodException { public ActionInitializationException(String message) { super(message); } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommandInitializationException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommandInitializationException.java index 11682f6ba7..7ddc2648e3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommandInitializationException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommandInitializationException.java @@ -4,4 +4,9 @@ public class CommandInitializationException extends OmnipodException { public CommandInitializationException(String message) { super(message); } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommunicationException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommunicationException.java index af1bef6ea8..21bdde16b9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommunicationException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CommunicationException.java @@ -17,6 +17,11 @@ public class CommunicationException extends OmnipodException { return type; } + @Override + public boolean isCertainFailure() { + return false; + } + public enum Type { TIMEOUT("Communication timeout"), UNEXPECTED_EXCEPTION("Caught an unexpected Exception"); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CrcMismatchException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CrcMismatchException.java index 18f7194f70..31f73548b7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CrcMismatchException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/CrcMismatchException.java @@ -19,4 +19,9 @@ public class CrcMismatchException extends OmnipodException { public int getActual() { return actual; } + + @Override + public boolean isCertainFailure() { + return false; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalDeliveryStatusException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalDeliveryStatusException.java index e7a9f6d63a..9cdb44af2b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalDeliveryStatusException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalDeliveryStatusException.java @@ -22,4 +22,9 @@ public class IllegalDeliveryStatusException extends OmnipodException { public DeliveryStatus getActual() { return actual; } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPacketTypeException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPacketTypeException.java index a79265e11a..d0ce2c6c13 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPacketTypeException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPacketTypeException.java @@ -22,4 +22,9 @@ public class IllegalPacketTypeException extends OmnipodException { public PacketType getActual() { return actual; } + + @Override + public boolean isCertainFailure() { + return false; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPodProgressException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPodProgressException.java index 9b3c0197f0..8fc5ffd3af 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPodProgressException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalPodProgressException.java @@ -21,4 +21,9 @@ public class IllegalPodProgressException extends OmnipodException { public PodProgressStatus getActual() { return actual; } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalResponseException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalResponseException.java index 0bd4a743d3..1894e18355 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalResponseException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalResponseException.java @@ -22,4 +22,9 @@ public class IllegalResponseException extends OmnipodException { public MessageBlockType getExpectedType() { return expectedType; } + + @Override + public boolean isCertainFailure() { + return false; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalSetupProgressException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalSetupProgressException.java index 88b3d2fdf0..2104338ba2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalSetupProgressException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/IllegalSetupProgressException.java @@ -21,4 +21,9 @@ public class IllegalSetupProgressException extends OmnipodException { public SetupProgress getActual() { return actual; } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/MessageDecodingException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/MessageDecodingException.java index 80956f7d21..8aab14932a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/MessageDecodingException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/MessageDecodingException.java @@ -8,4 +8,9 @@ public class MessageDecodingException extends OmnipodException { public MessageDecodingException(String message, Throwable cause) { super(message, cause); } + + @Override + public boolean isCertainFailure() { + return false; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NonceResyncException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NonceResyncException.java index 95983644af..935bdf96ae 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NonceResyncException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NonceResyncException.java @@ -4,4 +4,9 @@ public class NonceResyncException extends OmnipodException { public NonceResyncException() { super("Nonce resync failed"); } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NotEnoughDataException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NotEnoughDataException.java index 6f5c1b0638..803dbeb268 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NotEnoughDataException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/NotEnoughDataException.java @@ -13,4 +13,9 @@ public class NotEnoughDataException extends OmnipodException { public byte[] getData() { return data; } + + @Override + public boolean isCertainFailure() { + return false; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/OmnipodException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/OmnipodException.java index 2e0b771fd3..f91125ae3d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/OmnipodException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/OmnipodException.java @@ -8,4 +8,6 @@ public abstract class OmnipodException extends RuntimeException { public OmnipodException(String message, Throwable cause) { super(message, cause); } + + public abstract boolean isCertainFailure(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodFaultException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodFaultException.java index dbdcef5a4d..ed7f39679b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodFaultException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodFaultException.java @@ -16,4 +16,9 @@ public class PodFaultException extends OmnipodException { public PodInfoFaultEvent getFaultEvent() { return faultEvent; } + + @Override + public boolean isCertainFailure() { + return true; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodReturnedErrorResponseException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodReturnedErrorResponseException.java index 016ceaa511..7adfb54bdb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodReturnedErrorResponseException.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/exception/PodReturnedErrorResponseException.java @@ -13,4 +13,9 @@ public class PodReturnedErrorResponseException extends OmnipodException { public ErrorResponse getErrorResponse() { return errorResponse; } + + @Override + public boolean isCertainFailure() { + return true; + } }