Skip to content

Commit f709cc3

Browse files
committed
Merge pull request #132 from longbai/fixfilehandleleak
fixed file handle leak when resume upload
2 parents 9f328e4 + 46c2741 commit f709cc3

File tree

5 files changed

+27
-14
lines changed

5 files changed

+27
-14
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public interface CancellationHandler {
66

77
/**
88
* 定义用户取消数据或文件上传的信号
9+
*
910
* @return 是否已取消
1011
*/
1112
boolean isCancelled();

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,7 @@ private static String getUserAgent(String id) {
3636
android.os.Build.VERSION.RELEASE, device(), id);
3737
}
3838

39-
public String toString() {
40-
return ua;
41-
}
42-
43-
private static String device()
44-
{
39+
private static String device() {
4540
String model = Build.MODEL.trim();
4641
String device = deviceName(Build.MANUFACTURER.trim(), model);
4742
if (TextUtils.isEmpty(device)) {
@@ -50,8 +45,7 @@ private static String device()
5045
return (device == null ? "" : device) + "-" + model;
5146
}
5247

53-
private static String deviceName(String manufacturer, String model)
54-
{
48+
private static String deviceName(String manufacturer, String model) {
5549
String str = manufacturer.toLowerCase();
5650
if ((str.startsWith("unknown")) || (str.startsWith("alps")) ||
5751
(str.startsWith("android")) || (str.startsWith("sprd")) ||
@@ -64,4 +58,8 @@ private static String deviceName(String manufacturer, String model)
6458
}
6559
return manufacturer;
6660
}
61+
62+
public String toString() {
63+
return ua;
64+
}
6765
}

library/src/main/java/com/qiniu/android/storage/Configuration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private static DnsManager initDns(Builder builder) {
109109
IResolver r1 = AndroidDnsServer.defaultResolver();
110110
IResolver r2 = null;
111111
try {
112-
r2 = new Resolver(InetAddress.getByName("114.114.115.115"));
112+
r2 = new Resolver(InetAddress.getByName("223.6.6.6"));
113113
} catch (IOException ex) {
114114
ex.printStackTrace();
115115
}

library/src/main/java/com/qiniu/android/storage/ResumeUploader.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,30 @@ final class ResumeUploader implements Runnable {
5353
private UpToken token;
5454
private boolean forceIp = false;
5555

56-
ResumeUploader(HttpManager httpManager, Configuration config, File file, String key, UpToken token,
57-
UpCompletionHandler completionHandler, UploadOptions options, String recorderKey) {
56+
ResumeUploader(HttpManager httpManager, Configuration config, File f, String key, UpToken token,
57+
final UpCompletionHandler completionHandler, UploadOptions options, String recorderKey) {
5858
this.httpManager = httpManager;
5959
this.config = config;
60-
this.f = file;
60+
this.f = f;
6161
this.recorderKey = recorderKey;
62-
this.size = (int) file.length();
62+
this.size = (int) f.length();
6363
this.key = key;
6464
this.headers = new Header[1];
6565
headers[0] = new BasicHeader("Authorization", "UpToken " + token.token);
66-
this.completionHandler = completionHandler;
66+
this.file = null;
67+
this.completionHandler = new UpCompletionHandler() {
68+
@Override
69+
public void complete(String key, ResponseInfo info, JSONObject response) {
70+
if (file != null) {
71+
try {
72+
file.close();
73+
} catch (IOException e) {
74+
e.printStackTrace();
75+
}
76+
}
77+
completionHandler.complete(key, info, response);
78+
}
79+
};
6780
this.options = options != null ? options : UploadOptions.defaultOptions();
6881
chunkBuffer = new byte[config.chunkSize];
6982
long count = (size + Configuration.BLOCK_SIZE - 1) / Configuration.BLOCK_SIZE;

library/src/main/java/com/qiniu/android/storage/UploadManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
/**
1111
* 七牛文件上传管理器
1212
*
13+
*
1314
* 一般默认可以使用这个类的方法来上传数据和文件。这个类自动检测文件的大小,
1415
* 只要超过了{@link Configuration#putThreshold}
1516
*/

0 commit comments

Comments
 (0)