From 1145c26aae299f069961d173e675e9be55e6185b Mon Sep 17 00:00:00 2001 From: David Russell Date: Fri, 30 Jan 2015 15:18:08 +0700 Subject: [PATCH] RW-598: Fixed response markup parsing for file sizes greater than Integer.MAX_VALUE. Modifed the size property on the following classes to support file sizes greater than Integer.MAX_VALUE returned on API response markup: - RProjectFileDetails - RProjectResultDetails - RRepositoryFileDetails The size property in each case is now of type Long supporting max files sizes of Long.MAX_VALUE. Relevant unit tests have also been updated to reflect these changes. --- .../client/about/RProjectFileDetails.java | 4 ++-- .../client/about/RProjectResultDetails.java | 4 ++-- .../client/about/RRepositoryFileDetails.java | 4 ++-- .../revo/deployr/client/util/REntityUtil.java | 24 ++++++++++++++++--- .../api/RProjectDirectoryCallsTest.java | 4 ++-- .../RUserDefaultRepositoryFileCallsTest.java | 4 ++-- 6 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/revo/deployr/client/about/RProjectFileDetails.java b/src/main/java/com/revo/deployr/client/about/RProjectFileDetails.java index 7c348c0..f43c14a 100644 --- a/src/main/java/com/revo/deployr/client/about/RProjectFileDetails.java +++ b/src/main/java/com/revo/deployr/client/about/RProjectFileDetails.java @@ -19,7 +19,7 @@ */ public class RProjectFileDetails { - public RProjectFileDetails(String filename, String descr, String type, int size, URL url) { + public RProjectFileDetails(String filename, String descr, String type, long size, URL url) { this.filename = filename; this.descr = descr; this.type = type; @@ -44,6 +44,6 @@ public RProjectFileDetails(String filename, String descr, String type, int size, /** * Project directory file size. */ - public final int size; + public final long size; } diff --git a/src/main/java/com/revo/deployr/client/about/RProjectResultDetails.java b/src/main/java/com/revo/deployr/client/about/RProjectResultDetails.java index b8cee0e..6e4051c 100644 --- a/src/main/java/com/revo/deployr/client/about/RProjectResultDetails.java +++ b/src/main/java/com/revo/deployr/client/about/RProjectResultDetails.java @@ -19,7 +19,7 @@ */ public class RProjectResultDetails { - public RProjectResultDetails(String execution, String filename, String type, int size, URL url) { + public RProjectResultDetails(String execution, String filename, String type, long size, URL url) { this.execution = execution; this.filename = filename; this.type = type; @@ -40,7 +40,7 @@ public RProjectResultDetails(String execution, String filename, String type, int /** * Project execution result file size. */ - public final int size; + public final long size; /** * Project execution result file url. diff --git a/src/main/java/com/revo/deployr/client/about/RRepositoryFileDetails.java b/src/main/java/com/revo/deployr/client/about/RRepositoryFileDetails.java index 055ab77..ea7502b 100644 --- a/src/main/java/com/revo/deployr/client/about/RRepositoryFileDetails.java +++ b/src/main/java/com/revo/deployr/client/about/RRepositoryFileDetails.java @@ -26,7 +26,7 @@ public class RRepositoryFileDetails { public RRepositoryFileDetails(String filename, String directory, String author, String version, String latestby, String descr, String type, - int size, URL url, String access, + long size, URL url, String access, String restricted, boolean shared, boolean published, List authors, String inputs, String outputs, String tags, RRepositoryFile.Category category, @@ -90,7 +90,7 @@ public RRepositoryFileDetails(String filename, String directory, /** * Repository file size. */ - public final int size; + public final long size; /** * Repository file access level display-friendly description: diff --git a/src/main/java/com/revo/deployr/client/util/REntityUtil.java b/src/main/java/com/revo/deployr/client/util/REntityUtil.java index c7620ea..9b74493 100644 --- a/src/main/java/com/revo/deployr/client/util/REntityUtil.java +++ b/src/main/java/com/revo/deployr/client/util/REntityUtil.java @@ -105,7 +105,13 @@ public static RRepositoryFileDetails getRepositoryFileDetails(Map repoFile) { url = new URL(urlString); } catch (Exception ex) { } - int size = (Integer) repoFile.get("length"); + long size = 0L; + Object sizeObj = repoFile.get("length"); + if(sizeObj instanceof Long) + size = (Long) sizeObj; + else + if(sizeObj instanceof Integer) + size = ((Integer) sizeObj).longValue(); String restricted = (String) repoFile.get("restricted"); boolean shared = false; if (repoFile.get("shared") != null) { @@ -289,7 +295,13 @@ public static RProjectFileDetails getProjectFileDetails(Map fileMap) { String filename = (String) fileMap.get("filename"); String descr = (String) fileMap.get("descr"); String type = (String) fileMap.get("type"); - int size = (Integer) fileMap.get("length"); + long size = 0L; + Object sizeObj = fileMap.get("length"); + if(sizeObj instanceof Long) + size = (Long) sizeObj; + else + if(sizeObj instanceof Integer) + size = ((Integer) sizeObj).longValue(); String urlString = (String) fileMap.get("url"); URL url = null; try { @@ -308,7 +320,13 @@ public static RProjectResultDetails getProjectResultDetails(Map resultMap) { String execution = (String) resultMap.get("execution"); String filename = (String) resultMap.get("filename"); String type = (String) resultMap.get("type"); - int size = (Integer) resultMap.get("length"); + long size = 0L; + Object sizeObj = resultMap.get("length"); + if(sizeObj instanceof Long) + size = (Long) sizeObj; + else + if(sizeObj instanceof Integer) + size = ((Integer) sizeObj).longValue(); String urlString = (String) resultMap.get("url"); URL url = null; try { diff --git a/test/src/test/java/com/revo/deployr/client/api/RProjectDirectoryCallsTest.java b/test/src/test/java/com/revo/deployr/client/api/RProjectDirectoryCallsTest.java index 3e10be3..1759131 100644 --- a/test/src/test/java/com/revo/deployr/client/api/RProjectDirectoryCallsTest.java +++ b/test/src/test/java/com/revo/deployr/client/api/RProjectDirectoryCallsTest.java @@ -357,8 +357,8 @@ public void testProjectDirectoryLoadFile() { RProjectFile actualProjectFile = null; URL url = null; String urlData = ""; - int actualSize = 0; - int expSize = 0; + long actualSize = 0; + long expSize = 0; // Test error handling. Exception exception = null; diff --git a/test/src/test/java/com/revo/deployr/client/api/RUserDefaultRepositoryFileCallsTest.java b/test/src/test/java/com/revo/deployr/client/api/RUserDefaultRepositoryFileCallsTest.java index 1ee7980..d0a35e1 100644 --- a/test/src/test/java/com/revo/deployr/client/api/RUserDefaultRepositoryFileCallsTest.java +++ b/test/src/test/java/com/revo/deployr/client/api/RUserDefaultRepositoryFileCallsTest.java @@ -763,8 +763,8 @@ public void testUserRepositoryTransferFile() { URL repoURL = null; URL repoTransURL = null; RRepositoryFile repoTransFile = null; - int repoFileSize = 0; - int repoTransFileSize = 0; + long repoFileSize = 0; + long repoTransFileSize = 0; // Test error handling. Exception exception = null;