Skip to content

ApiClient timeout setter methods don't work #10

@bquenzer

Description

@bquenzer

The ApiClient methods for setting timeouts in the OkHttpClient don't do what their respective documentation states.

ApiClient apiClient = new ApiClient();
apiClient.setConnectTimeout(30000);
apiClient.setReadTimeout(30000);
apiClient.setWriteTimeout(30000);

Expected result: Connect, read and write timeout are set to 30 seconds.
Actual result: Connect, read and write timeout still default to 10 seconds.

I looked at your code, and the setter methods just create a new client and then ignore it:

public ApiClient setConnectTimeout(int connectionTimeout) {
    httpClient.newBuilder().connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS).build();
    return this;
}

I suggest fixing it by actually assigning the client. Example:

public ApiClient setConnectTimeout(int connectionTimeout) {
    this.httpClient = this.httpClient.newBuilder()
                                     .connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS)
                                     .build();
    return this;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions