diff --git a/CHANGELOG.md b/CHANGELOG.md index 85f7a0184..836925815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ __New Features and Enhancements:__ - Add file request support ([#869](https://github.com/box/box-java-sdk/pull/869)) +__Bug Fixes:__ + +- Fix `BoxWeblink` deserialization ([#881](https://github.com/box/box-java-sdk/pull/881)) + ## 2.53.0 [2021-01-08] __New Features and Enhancements:__ diff --git a/src/main/java/com/box/sdk/BoxWebLink.java b/src/main/java/com/box/sdk/BoxWebLink.java index 2900f4915..c58fba4f4 100644 --- a/src/main/java/com/box/sdk/BoxWebLink.java +++ b/src/main/java/com/box/sdk/BoxWebLink.java @@ -275,7 +275,11 @@ protected void parseJSONMember(JsonObject.Member member) { try { if (memberName.equals("url")) { try { - this.linkURL = new URL(value.asString()); + if (value.asString().isEmpty()) { + this.linkURL = null; + } else { + this.linkURL = new URL(value.asString()); + } } catch (MalformedURLException e) { throw new BoxAPIException("Couldn't parse url for weblink", e); } diff --git a/src/test/Fixtures/BoxCollection/GetCollectionItems200.json b/src/test/Fixtures/BoxCollection/GetCollectionItems200.json index 29c5b7574..284669930 100644 --- a/src/test/Fixtures/BoxCollection/GetCollectionItems200.json +++ b/src/test/Fixtures/BoxCollection/GetCollectionItems200.json @@ -13,6 +13,14 @@ "etag": "1", "sha1": "9f425a006e19bb38566af5b2122abd2e0c5dd851", "name": "Simple Contract Final.pdf" + }, + { + "type": "web_link", + "id": "123456", + "sequence_id": "0", + "etag": "0", + "name": "google.com", + "url": "" } ], "limit": 100, diff --git a/src/test/java/com/box/sdk/BoxCollectionTest.java b/src/test/java/com/box/sdk/BoxCollectionTest.java index 79e52f610..c44c05786 100644 --- a/src/test/java/com/box/sdk/BoxCollectionTest.java +++ b/src/test/java/com/box/sdk/BoxCollectionTest.java @@ -148,8 +148,10 @@ public void getCollectionSucceeds() throws IOException { public void testGetItemsParsesFieldsCorrectly() throws IOException { String result = ""; final String collectionID = "12345"; + final String collectionID2 = "123456"; final String collectionItemsURL = "/collections/12345/items/"; final String collectionName = "Simple Contract Final.pdf"; + final String collectionName2 = "google.com"; result = TestConfig.getFixture("BoxCollection/GetCollectionItems200"); @@ -160,9 +162,13 @@ public void testGetItemsParsesFieldsCorrectly() throws IOException { BoxCollection collection = new BoxCollection(this.api, collectionID); Iterator iterator = collection.getItems().iterator(); - BoxItem.Info info = iterator.next(); + BoxFile.Info info = (BoxFile.Info) iterator.next(); + BoxWebLink.Info info2 = (BoxWebLink.Info) iterator.next(); Assert.assertEquals(collectionID, info.getID()); Assert.assertEquals(collectionName, info.getName()); + Assert.assertEquals(collectionID2, info2.getID()); + Assert.assertEquals(collectionName2, info2.getName()); + Assert.assertEquals(null, info2.getLinkURL()); } }