diff --git a/src/main/java/com/qiniu/storage/BucketManager.java b/src/main/java/com/qiniu/storage/BucketManager.java index e2a53fdeb..ac2cbcaf3 100644 --- a/src/main/java/com/qiniu/storage/BucketManager.java +++ b/src/main/java/com/qiniu/storage/BucketManager.java @@ -237,8 +237,12 @@ public FileListing listFilesV2(String bucket, String prefix, String marker, int for (int i = 0; i < lineList.size(); i++) { String line = lineList.get(i); JsonObject jsonObject = Json.decode(line, JsonObject.class); - if (!(jsonObject.get("item") instanceof JsonNull)) + if (jsonObject == null) { + continue; + } + if (!(jsonObject.get("item") instanceof JsonNull)) { fileInfoList.add(Json.decode(jsonObject.get("item"), FileInfo.class)); + } String dir = jsonObject.get("dir").getAsString(); if (!"".equals(dir)) commonPrefixSet.add(dir); if (i == lineList.size() - 1) @@ -523,8 +527,8 @@ public Response asynFetch(String url, String bucket, String key) throws QiniuExc * @throws QiniuException */ public Response asynFetch(String url, String bucket, String key, String md5, String etag, - String callbackurl, String callbackbody, String callbackbodytype, - String callbackhost, int fileType) throws QiniuException { + String callbackurl, String callbackbody, String callbackbodytype, + String callbackhost, int fileType) throws QiniuException { StringMap params = new StringMap() .putNotNull("key", key) .putNotNull("md5", md5) diff --git a/src/test/java/test/com/qiniu/storage/BucketTest2.java b/src/test/java/test/com/qiniu/storage/BucketTest2.java index 2ea13a8c8..6fcf5f189 100644 --- a/src/test/java/test/com/qiniu/storage/BucketTest2.java +++ b/src/test/java/test/com/qiniu/storage/BucketTest2.java @@ -158,6 +158,41 @@ public void testListIteratorWithDefaultLimit() { } } + @Test + public void testListV2() { + try { + String[] buckets = new String[]{TestConfig.testBucket_z0}; + for (String bucket : buckets) { + FileListing l = bucketManager.listFilesV2(bucket, "sdfisjfisjei", null, 2, null); + } + + for (String bucket : buckets) { + FileListing l = bucketManager.listFilesV2(bucket, null, null, 2, null); + Assert.assertNotNull(l.items[0]); + Assert.assertNotNull(l.marker); + } + } catch (QiniuException e) { + Assert.assertTrue(ResCode.find(e.code(), ResCode.getPossibleResCode())); + } + } + + + @Test + public void testListV2_1() { + try { + String marker = null; + do{ + FileListing l = bucketManager.listFilesV2(TestConfig.testBucket_z0, "pi", marker, 2, null); + marker = l.marker; + for (FileInfo f :l.items) { + Assert.assertNotNull(f.key); + } + } while(!StringUtils.isNullOrEmpty(marker)); + } catch (QiniuException e) { + Assert.assertTrue(ResCode.find(e.code(), ResCode.getPossibleResCode())); + } + } + /** * 测试stat */