diff options
author | desperateCoder <echotodevnull@gmail.com> | 2020-05-13 12:23:29 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2020-05-13 12:23:41 +0300 |
commit | 78124c37b49008b33c17f30426c69f9d692e1cae (patch) | |
tree | d9e64f78c5a7b9f692bfa095225d2a6001c89e2b | |
parent | 6affa08fd8a90fc012e1560487c34d67b5b430fd (diff) |
crash on invalid versions from capability endpoint
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java | 7 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java index c0b29e7ae..e8768b140 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java @@ -339,7 +339,9 @@ public class JsonToEntityParser { JsonObject deck = caps.getAsJsonObject("deck"); if (deck.has("version")) { version = deck.get("version").getAsString(); - + if (version == null || version.trim().length() < 1) { + throw new IllegalArgumentException("capabilities endpoint returned an invalid version string: \""+version+"\""); + } } } if (caps.has("theming")) { @@ -348,6 +350,9 @@ public class JsonToEntityParser { capabilities.setTextColor(theming.get("color-text").getAsString()); } } + if (version == null || version.trim().length() < 1) { + throw new IllegalArgumentException("capabilities endpoint returned no version string at all!"); + } capabilities.setDeckVersion(Version.of(version)); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java index 5e7169472..701cdd335 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java @@ -80,7 +80,7 @@ public class Version implements Comparable<Version> { if (matcher.find()) { return Integer.parseInt(matcher.group()); } - return 0; + throw new IllegalArgumentException("could not extract a number from following string: \""+containsNumbers+"\""); } @NonNull |