From 68b159c213e30af167457b8717f360607e3408f2 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Wed, 27 Jun 2018 11:31:38 +0200 Subject: [PATCH] ignore unhandled rich objects Signed-off-by: tobiasKaminsky --- .../models/RichElementTypeAdapter.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/com/owncloud/android/lib/resources/activities/models/RichElementTypeAdapter.java b/src/com/owncloud/android/lib/resources/activities/models/RichElementTypeAdapter.java index ebb0831a75..8decdaf748 100644 --- a/src/com/owncloud/android/lib/resources/activities/models/RichElementTypeAdapter.java +++ b/src/com/owncloud/android/lib/resources/activities/models/RichElementTypeAdapter.java @@ -95,26 +95,31 @@ private RichObject readObject(String tag, JsonReader in) throws IOException { RichObject richObject = new RichObject(); richObject.setTag(tag); while (in.hasNext()) { - String name = in.nextName(); - + String name; + try { + name = in.nextName(); + } catch (IllegalStateException e) { + name = ""; + } + switch (name) { case "type": - richObject.setType(in.nextString()); + richObject.setType(getNextString(in)); break; case "id": - richObject.setId(in.nextString()); + richObject.setId(getNextString(in)); break; case "name": - richObject.setName(in.nextString()); + richObject.setName(getNextString(in)); break; case "path": - richObject.setPath(in.nextString()); + richObject.setPath(getNextString(in)); break; case "link": - richObject.setLink(in.nextString()); + richObject.setLink(getNextString(in)); break; case "server": - richObject.setLink(in.nextString()); + richObject.setLink(getNextString(in)); break; default: in.skipValue(); // ignore value @@ -124,5 +129,13 @@ private RichObject readObject(String tag, JsonReader in) throws IOException { in.endObject(); return richObject; } + + private String getNextString(JsonReader in) { + try { + return in.nextString(); + } catch (IllegalStateException | IOException e) { + return ""; + } + } }