Skip to content

Commit e05deaa

Browse files
authored
Merge pull request #483 from YangSen-qn/develop
fix read data empty and then exception
2 parents 2609388 + 00fb178 commit e05deaa

File tree

14 files changed

+126
-37
lines changed

14 files changed

+126
-37
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#Changelog
2+
23
## 8.4.2(2022-03-02)
34
* 优化:
45
* 为自动获取上传域名流程增加了一个默认的备份域名。
@@ -20,6 +21,9 @@
2021
* 新增:
2122
* 新增 token.isValidForDuration API,可在上传之前检查 token 是否有效
2223

24+
## 8.3.4(2022-05-10)
25+
* 处理分片 v1 上传偶现异常:多区域重试的断点续传场景偶现空指针异常
26+
2327
## 8.3.3(2021-10-20)
2428
* 日志不再统计手机的信号强度
2529

QiNiu_Android.iml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<module external.linked.project.id="QiNiu_Android" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
2+
<module external.linked.project.id="Qiniu_Android" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
33
<component name="FacetManager">
44
<facet type="java-gradle" name="Java-Gradle">
55
<configuration>
6+
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
67
<option name="BUILDABLE" value="false" />
78
</configuration>
89
</facet>
910
</component>
10-
<component name="NewModuleRootManager">
11+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
1112
<exclude-output />
1213
<content url="file://$MODULE_DIR$">
1314
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
14-
<excludeFolder url="file://$MODULE_DIR$/build" />
1515
</content>
1616
<orderEntry type="inheritedJdk" />
1717
<orderEntry type="sourceFolder" forTests="false" />

library/library.iml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
<option name="ALLOW_USER_CONFIGURATION" value="false" />
2020
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
2121
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
22-
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
23-
<option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" />
22+
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
23+
<option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="" />
2424
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
2525
<option name="PROJECT_TYPE" value="1" />
2626
</configuration>
@@ -88,7 +88,7 @@
8888
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
8989
<excludeFolder url="file://$MODULE_DIR$/build" />
9090
</content>
91-
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
91+
<orderEntry type="jdk" jdkName="Android API 30 Platform" jdkType="Android SDK" />
9292
<orderEntry type="sourceFolder" forTests="false" />
9393
<orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.13@jar" level="project" />
9494
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
@@ -99,8 +99,8 @@
9999
<orderEntry type="library" name="Gradle: org.jetbrains:annotations:13.0@jar" level="project" />
100100
<orderEntry type="library" name="Gradle: com.qiniu:happy-dns:1.0.0@jar" level="project" />
101101
<orderEntry type="library" name="Gradle: org.conscrypt:conscrypt-android:2.2.1@aar" level="project" />
102-
<orderEntry type="library" name="Gradle: android.test.mock-android-29" level="project" />
103-
<orderEntry type="library" name="Gradle: android.test.base-android-29" level="project" />
104-
<orderEntry type="library" name="Gradle: android.test.runner-android-29" level="project" />
102+
<orderEntry type="library" name="Gradle: android.test.mock-android-30" level="project" />
103+
<orderEntry type="library" name="Gradle: android.test.base-android-30" level="project" />
104+
<orderEntry type="library" name="Gradle: android.test.runner-android-30" level="project" />
105105
</component>
106106
</module>

library/src/androidTest/java/com/qiniu/android/TestConfig.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,23 @@
88
*/
99
public final class TestConfig {
1010
// TODO: 2020-05-09 bad token for testPutBytesWithFixedZoneUseBackupDomains
11-
// 华东上传凭证
11+
// 华东上传凭证
1212
public static final String bucket_z0 = "kodo-phone-zone0-space";
13-
public static final String token_z0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:OaOVs0Fx1YljeCSdE3bX7WXIlDE=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTAtc3BhY2UiLCJkZWFkbGluZSI6MTY0NjYzMzIzNSwgInJldHVybkJvZHkiOiJ7XCJjYWxsYmFja1VybFwiOlwiaHR0cDpcL1wvY2FsbGJhY2suZGV2LnFpbml1LmlvXCIsIFwiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKX0ifQ==";
13+
public static final String token_z0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:VSYUpM0l-xwbNtSH0jYzqjqJI5A=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTAtc3BhY2UiLCJkZWFkbGluZSI6MTY1NzM1Mzc5MSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
1414
// 华北上传凭证
1515
public static final String bucket_z1 = "kodo-phone-zone1-space";
16-
public static final String token_z1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:pz5RzDV5__H0wBtCZk_Eyhi1lzc=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTEtc3BhY2UiLCJkZWFkbGluZSI6MTY0NjYzMzIzNSwgInJldHVybkJvZHkiOiJ7XCJjYWxsYmFja1VybFwiOlwiaHR0cDpcL1wvY2FsbGJhY2suZGV2LnFpbml1LmlvXCIsIFwiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKX0ifQ==";
16+
public static final String token_z1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:wMAHQCA_pTuG4atQqWl6vjqBjQ4=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTEtc3BhY2UiLCJkZWFkbGluZSI6MTY1NzM1Mzc5MSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
1717
// 华南上传凭证
1818
public static final String bucket_z2 = "kodo-phone-zone2-space";
19-
public static final String token_z2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:f-As7eQSb4bra9wIPD8NtZoLj-I=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTItc3BhY2UiLCJkZWFkbGluZSI6MTY0NjYzMzIzNSwgInJldHVybkJvZHkiOiJ7XCJjYWxsYmFja1VybFwiOlwiaHR0cDpcL1wvY2FsbGJhY2suZGV2LnFpbml1LmlvXCIsIFwiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKX0ifQ==";
19+
public static final String token_z2 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:uTnRnSynN9vGVzo8qnYT-QXjKIw=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZTItc3BhY2UiLCJkZWFkbGluZSI6MTY1NzM1Mzc5MSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
2020
// 北美上传凭证
2121
public static final String bucket_na0 = "kodo-phone-zone-na0-space";
22-
public static final String token_na0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:REXUSlE442Vg_J-1tS_JN08stN4=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1uYTAtc3BhY2UiLCJkZWFkbGluZSI6MTY0NjYzMzIzNSwgInJldHVybkJvZHkiOiJ7XCJjYWxsYmFja1VybFwiOlwiaHR0cDpcL1wvY2FsbGJhY2suZGV2LnFpbml1LmlvXCIsIFwiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKX0ifQ==";
22+
public static final String token_na0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:E_6g6R_SNaik9oepZElktanK8Pc=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1uYTAtc3BhY2UiLCJkZWFkbGluZSI6MTY1NzM1Mzc5MSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
2323
// 东南亚上传凭证
2424
public static final String bucket_as0 = "kodo-phone-zone-as0-space";
25-
public static final String token_as0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:KJ5_t8Uz06R7HnajX-aLdDVexdo=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1hczAtc3BhY2UiLCJkZWFkbGluZSI6MTY0NjYzMzIzNSwgInJldHVybkJvZHkiOiJ7XCJjYWxsYmFja1VybFwiOlwiaHR0cDpcL1wvY2FsbGJhY2suZGV2LnFpbml1LmlvXCIsIFwiZm9vXCI6JCh4OmZvbyksIFwiYmFyXCI6JCh4OmJhciksIFwibWltZVR5cGVcIjokKG1pbWVUeXBlKSwgXCJoYXNoXCI6JChldGFnKSwgXCJrZXlcIjokKGtleSksIFwiZm5hbWVcIjokKGZuYW1lKX0ifQ==";
26-
// 雾存储华东一区
27-
public static final String bucket_fog_cn_east1 = "test-fog-cn-east-1";
28-
public static final String token_fog_cn_east1 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:JPPu4hG6dc9AMTBag4eAujK_ldI=:eyJzY29wZSI6InRlc3QtZm9nLWNuLWVhc3QtMSIsImRlYWRsaW5lIjoxNjQ2NjMzMjM1LCAicmV0dXJuQm9keSI6IntcImNhbGxiYWNrVXJsXCI6XCJodHRwOlwvXC9jYWxsYmFjay5kZXYucWluaXUuaW9cIiwgXCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
29-
public static final String invalidBucketToken = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:4y0ZaTdcqRcyMloKt_ujblr-WUA=:eyJzY29wZSI6InpvbmVfaW52YWxpZCIsImRlYWRsaW5lIjoxNjQ2NjMzMjM1LCAicmV0dXJuQm9keSI6IntcImNhbGxiYWNrVXJsXCI6XCJodHRwOlwvXC9jYWxsYmFjay5kZXYucWluaXUuaW9cIiwgXCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
30-
25+
public static final String token_as0 = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:7O_yi3Gju89b_GLN8Ffd5NOvXYQ=:eyJzY29wZSI6ImtvZG8tcGhvbmUtem9uZS1hczAtc3BhY2UiLCJkZWFkbGluZSI6MTY1NzM1Mzc5MSwgInJldHVybkJvZHkiOiJ7XCJmb29cIjokKHg6Zm9vKSwgXCJiYXJcIjokKHg6YmFyKSwgXCJtaW1lVHlwZVwiOiQobWltZVR5cGUpLCBcImhhc2hcIjokKGV0YWcpLCBcImtleVwiOiQoa2V5KSwgXCJmbmFtZVwiOiQoZm5hbWUpfSJ9";
26+
public static final String invalidBucketToken = "dxVQk8gyk3WswArbNhdKIwmwibJ9nFsQhMNUmtIM:MxUCcdbRDl2V67pA6g_whNXejEk=:eyJzY29wZSI6InpvbmVfaW52YWxpZCIsImRlYWRsaW5lIjoxNjU3MzUzNzkxLCAicmV0dXJuQm9keSI6IntcImZvb1wiOiQoeDpmb28pLCBcImJhclwiOiQoeDpiYXIpLCBcIm1pbWVUeXBlXCI6JChtaW1lVHlwZSksIFwiaGFzaFwiOiQoZXRhZyksIFwia2V5XCI6JChrZXkpLCBcImZuYW1lXCI6JChmbmFtZSl9In0=";
27+
3128
// -----------
3229
public static final String ak = "bjtWBQXrcxgo7HWwlC_bgHg81j352_GhgBGZPeOW";
3330

library/src/main/java/com/qiniu/android/collect/ReportConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ public class ReportConfig {
1616
public double interval;
1717

1818
/**
19-
* 记录文件大于 uploadThreshold 会触发上传,单位:字节 默认为4 * 1024
19+
* 记录文件大于 uploadThreshold 会触发上传,单位:字节 默认为16 * 1024
2020
*/
2121
public long uploadThreshold;
2222

2323
/**
24-
* 记录文件最大值 要大于 uploadThreshold 单位:字节 默认为2 * 1024 * 1024
24+
* 记录文件最大值 要大于 uploadThreshold 单位:字节 默认为20 * 1024 * 1024
2525
*/
2626
public long maxRecordFileSize;
2727

library/src/main/java/com/qiniu/android/common/Config.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,13 @@ public final class Config {
5252
* <p>
5353
* 记录文件大于此值后暂停记录上传信息。
5454
*/
55-
public static int maxRecordFileSize = 2 * 1024 * 1024;
55+
public static int maxRecordFileSize = 20 * 1024 * 1024;
5656

5757
/**
5858
* 记录文件大于 uploadThreshold 后才可能触发上传,单位:字节。
59-
* <p>
60-
* 以 200,CwIAAF4znMnpno0U,up.qiniu.com,183.131.7.18,80,383.0,1481014578,262144 为例,
61-
* 100 条,约 7400Byte ;50 条,约 3700; 1024 约 13.8 条
62-
* <p>
63-
* chunkSize = 256 * 1024;putThreshold = 512 * 1024
64-
* 分片上传, 1M,最好情况下 5 个请求;10M,最好情况下 41 个请求
65-
* <p>
6659
* 可依据客户上传频率、文件大小做调整
6760
*/
68-
public static int uploadThreshold = 4 * 1024;
61+
public static int uploadThreshold = 16 * 1024;
6962

7063
/**
7164
* 每次上传最小时间间隔.单位:分钟

library/src/main/java/com/qiniu/android/common/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44
public final class Constants {
5+
56
public static final String VERSION = "8.4.2";
67

78
public static final String UTF_8 = "utf-8";

library/src/main/java/com/qiniu/android/http/ResponseInfo.java

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,122 @@
1313
* 定义HTTP请求的日志信息和常规方法
1414
*/
1515
public final class ResponseInfo {
16+
17+
/**
18+
* StatusCode >= 100 见:https://developer.qiniu.com/kodo/3928/error-responses
19+
*/
20+
1621
@Deprecated
1722
public static final int ResquestSuccess = 200;
23+
24+
/**
25+
* 请求成功
26+
*/
1827
public static final int RequestSuccess = 200;
1928

29+
/**
30+
* 非预期的系统调用,使用库上传时出现的调用异常,此错误非 SDK 层业务逻辑错误。
31+
*/
2032
public static final int UnexpectedSysCallError = -10;
33+
2134
@Deprecated
2235
public static final int NoUsableHostError = -9;
36+
37+
/**
38+
* 在上传时,SDK 内部业务逻辑非预期。正常情况下,此错误并会被抛掷应用层。
39+
*
40+
* 此错误出现的原因一般为某个上传流程异常请求导致,实际应该抛出请求,但因为调用异常未被抛出。
41+
*/
2342
public static final int SDKInteriorError = -9;
43+
44+
/**
45+
* 劫持错误。当请求确定或可能被劫持会抛出此错误。
46+
*/
2447
public static final int MaliciousResponseError = -8;
48+
49+
/**
50+
* 本地 io 异常,可能是文件读取异常,也可能是网络 io 异常
51+
*/
2552
public static final int LocalIOError = -7;
53+
54+
/**
55+
* 空文件错误。文件不存在 或 读取文件的大小为 0
56+
*/
2657
public static final int ZeroSizeFile = -6;
58+
59+
/**
60+
* 无效 token。token 格式错误。
61+
*/
2762
public static final int InvalidToken = -5;
63+
64+
/**
65+
* 无效参数。参数设置错误。
66+
*/
2867
public static final int InvalidArgument = -4;
68+
69+
/**
70+
* 无效文件。读取文件异常。
71+
*/
2972
public static final int InvalidFile = -3;
73+
74+
/**
75+
* 用户取消
76+
*/
3077
public static final int Cancelled = -2;
78+
79+
/**
80+
* 网络错误
81+
*/
3182
public static final int NetworkError = -1;
3283

84+
@Deprecated
3385
public static final int Crc32NotMatch = -406;
3486

87+
@Deprecated
3588
public static final int UnknownError = 10000;
3689

3790
// <-- error code copy from ios
91+
92+
/**
93+
* 请求超时
94+
*/
3895
public static final int TimedOut = -1001;
96+
97+
/**
98+
* 无法解析 host
99+
*/
39100
public static final int UnknownHost = -1003;
101+
102+
/**
103+
* 请求链接 host 异常
104+
*/
40105
public static final int CannotConnectToHost = -1004;
106+
107+
/**
108+
* 网络异常断开
109+
*/
41110
public static final int NetworkConnectionLost = -1005;
111+
112+
/**
113+
* SSL 校验异常
114+
*/
42115
public static final int NetworkSSLError = -1200;
116+
117+
/**
118+
* 网络协议错误
119+
*/
43120
public static final int NetworkProtocolError = 100;
121+
122+
/**
123+
* 网络异常,没有网络,或网络环境太差。
124+
*/
44125
public static final int NetworkSlow = -1009;
126+
127+
/**
128+
* 响应解析异常
129+
*/
45130
public static final int ParseError = -1015;
131+
46132
@Deprecated
47133
public static final int PasrseError = -1015;
48134

0 commit comments

Comments
 (0)