Skip to content
This repository was archived by the owner on Nov 24, 2020. It is now read-only.

Commit a66ba6c

Browse files
committed
fix timeouts in calls
1 parent 6c77941 commit a66ba6c

File tree

2 files changed

+17
-21
lines changed

2 files changed

+17
-21
lines changed

src/target/java_android.cr

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ END
442442
static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
443443
static Application application;
444444
static Interceptor interceptor = null;
445-
static Long defaultTimeout = 30000L;
445+
static Long defaultTimeout = 60000L;
446446
447447
static {
448448
dateTimeFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
@@ -472,6 +472,11 @@ END
472472
if (interceptor != null)
473473
builder.addNetworkInterceptor(interceptor);
474474
475+
builder.connectTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
476+
.readTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
477+
.writeTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
478+
.callTimeout(defaultTimeout, TimeUnit.MILLISECONDS);
479+
475480
http = builder.build();
476481
return;
477482
}
@@ -509,7 +514,10 @@ END
509514
.connectionPool(connectionPool)
510515
.dispatcher(dispatcher)
511516
.sslSocketFactory(sslSocketFactory, trustManager)
512-
.readTimeout(60, TimeUnit.SECONDS)
517+
.connectTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
518+
.writeTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
519+
.readTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
520+
.callTimeout(defaultTimeout, TimeUnit.MILLISECONDS)
513521
.retryOnConnectionFailure(false);
514522
515523
if (interceptor != null)
@@ -759,7 +767,6 @@ END
759767
760768
static void makeRequest(String name, JSONObject args, final RequestCallback callback, Long timeout) {
761769
initialize();
762-
final Timer httpTimer = new Timer();
763770
JSONObject body = new JSONObject();
764771
try {
765772
body.put("id", randomBytesHex(8));
@@ -778,10 +785,14 @@ END
778785
.build();
779786
780787
final Call call = http.newCall(request);
788+
789+
if (timeout != null) {
790+
call.timeout().timeout(timeout, TimeUnit.MILLISECONDS);
791+
}
792+
781793
call.enqueue(new okhttp3.Callback() {
782794
@Override
783795
public void onFailure(Call call, final IOException e) {
784-
httpTimer.cancel();
785796
new Handler(Looper.getMainLooper()).post(new Runnable() {
786797
@Override
787798
public void run() {
@@ -793,7 +804,6 @@ END
793804
794805
@Override
795806
public void onResponse(Call call, final Response response) throws IOException {
796-
httpTimer.cancel();
797807
if (response.code() == 502) {
798808
Log.e("API", "HTTP " + response.code());
799809
new Handler(Looper.getMainLooper()).post(new Runnable() {
@@ -832,20 +842,6 @@ END
832842
});
833843
}
834844
});
835-
final TimerTask task = new TimerTask() {
836-
@Override
837-
public void run() {
838-
call.cancel();
839-
new Handler(Looper.getMainLooper()).post(new Runnable() {
840-
@Override
841-
public void run() {
842-
callback.onResult(new Error() {{type = ErrorType.Connection ; message = "Timeout" ;}}, null);
843-
}
844-
});
845-
return;
846-
}
847-
};
848-
httpTimer.schedule(task, timeout != null ? timeout : defaultTimeout);
849845
}
850846
851847
static Calendar toCalendar(Date date){

target-android/api/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ android {
2222

2323
dependencies {
2424
implementation fileTree(dir: 'libs', include: ['*.jar'])
25-
api 'com.squareup.okhttp3:okhttp:3.12.0'
25+
api 'com.squareup.okhttp3:okhttp:3.12.10'
2626
api 'com.anupcowkur:reservoir:3.1.0'
27-
}
27+
}

0 commit comments

Comments
 (0)