• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

box / box-java-sdk / #7364

30 Jun 2026 12:42PM UTC coverage: 12.395% (-0.003%) from 12.398%
#7364

Pull #1904

github

web-flow
Merge 1be4fba07 into ce54ef6fa
Pull Request #1904: feat(boxsdkgen): Setup common default timeout (box/box-codegen#965)

0 of 15 new or added lines in 3 files covered. (0.0%)

5 existing lines in 3 files now uncovered.

8374 of 67558 relevant lines covered (12.4%)

0.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/com/box/sdkgen/networking/network/NetworkSession.java
1
package com.box.sdkgen.networking.network;
2

3
import com.box.sdkgen.box.errors.BoxSDKError;
4
import com.box.sdkgen.internal.logging.DataSanitizer;
5
import com.box.sdkgen.networking.baseurls.BaseUrls;
6
import com.box.sdkgen.networking.boxnetworkclient.BoxNetworkClient;
7
import com.box.sdkgen.networking.interceptors.Interceptor;
8
import com.box.sdkgen.networking.networkclient.NetworkClient;
9
import com.box.sdkgen.networking.proxyconfig.ProxyConfig;
10
import com.box.sdkgen.networking.retries.BoxRetryStrategy;
11
import com.box.sdkgen.networking.retries.RetryStrategy;
12
import com.box.sdkgen.networking.timeoutconfig.TimeoutConfig;
13
import java.util.ArrayList;
14
import java.util.HashMap;
15
import java.util.List;
16
import java.util.Map;
17
import java.util.stream.Collectors;
18
import java.util.stream.Stream;
19

20
public class NetworkSession {
21
  protected Map<String, String> additionalHeaders = new HashMap<>();
×
22

23
  protected BaseUrls baseUrls = new BaseUrls();
×
24

25
  protected List<Interceptor> interceptors = new ArrayList<>();
×
26

27
  protected NetworkClient networkClient;
28

29
  protected RetryStrategy retryStrategy;
30

31
  protected DataSanitizer dataSanitizer;
32

33
  protected ProxyConfig proxyConfig;
34

35
  protected TimeoutConfig timeoutConfig;
36

37
  public NetworkSession() {
×
38
    networkClient = new BoxNetworkClient();
×
39
    retryStrategy = new BoxRetryStrategy();
×
40
    dataSanitizer = new DataSanitizer();
×
NEW
41
    timeoutConfig =
×
42
        new TimeoutConfig.Builder()
NEW
43
            .connectionTimeoutMs(10000L)
×
NEW
44
            .readTimeoutMs(60000L)
×
NEW
45
            .requestTimeoutMs(21600000L)
×
NEW
46
            .build();
×
NEW
47
    networkClient = ((BoxNetworkClient) networkClient).withTimeoutConfig(timeoutConfig);
×
UNCOV
48
  }
×
49

50
  protected NetworkSession(Builder builder) {
×
51
    this.additionalHeaders = builder.additionalHeaders;
×
52
    this.baseUrls = builder.baseUrls;
×
53
    this.networkClient = builder.networkClient;
×
54
    this.interceptors = builder.interceptors;
×
55
    this.retryStrategy = builder.retryStrategy;
×
56
    this.dataSanitizer = builder.dataSanitizer;
×
57
    this.proxyConfig = builder.proxyConfig;
×
58
    this.timeoutConfig = builder.timeoutConfig;
×
59
  }
×
60

61
  public NetworkSession withAdditionalHeaders() {
62
    return withAdditionalHeaders(new HashMap<>());
×
63
  }
64

65
  public NetworkSession withAdditionalHeaders(Map<String, String> additionalHeaders) {
66
    Map<String, String> newHeaders = new HashMap<>();
×
67
    newHeaders.putAll(this.additionalHeaders);
×
68
    newHeaders.putAll(additionalHeaders);
×
69
    return new NetworkSession.Builder()
×
70
        .additionalHeaders(newHeaders)
×
71
        .baseUrls(this.baseUrls)
×
72
        .interceptors(this.interceptors)
×
73
        .networkClient(this.networkClient)
×
74
        .retryStrategy(this.retryStrategy)
×
75
        .dataSanitizer(this.dataSanitizer)
×
76
        .proxyConfig(this.proxyConfig)
×
77
        .timeoutConfig(this.timeoutConfig)
×
78
        .build();
×
79
  }
80

81
  public NetworkSession withCustomBaseUrls(BaseUrls baseUrls) {
82
    return new Builder()
×
83
        .additionalHeaders(this.additionalHeaders)
×
84
        .baseUrls(baseUrls)
×
85
        .interceptors(this.interceptors)
×
86
        .networkClient(this.networkClient)
×
87
        .retryStrategy(this.retryStrategy)
×
88
        .dataSanitizer(this.dataSanitizer)
×
89
        .proxyConfig(this.proxyConfig)
×
90
        .timeoutConfig(this.timeoutConfig)
×
91
        .build();
×
92
  }
93

94
  public NetworkSession withInterceptors(List<Interceptor> interceptors) {
95
    List<Interceptor> newInterceptors =
×
96
        Stream.concat(this.interceptors.stream(), interceptors.stream())
×
97
            .collect(Collectors.toList());
×
98
    return new Builder()
×
99
        .additionalHeaders(this.additionalHeaders)
×
100
        .baseUrls(this.baseUrls)
×
101
        .interceptors(newInterceptors)
×
102
        .networkClient(this.networkClient)
×
103
        .retryStrategy(this.retryStrategy)
×
104
        .dataSanitizer(this.dataSanitizer)
×
105
        .proxyConfig(this.proxyConfig)
×
106
        .timeoutConfig(this.timeoutConfig)
×
107
        .build();
×
108
  }
109

110
  public NetworkSession withNetworkClient(NetworkClient networkClient) {
111
    return new Builder()
×
112
        .additionalHeaders(this.additionalHeaders)
×
113
        .baseUrls(this.baseUrls)
×
114
        .interceptors(this.interceptors)
×
115
        .networkClient(networkClient)
×
116
        .retryStrategy(this.retryStrategy)
×
117
        .dataSanitizer(this.dataSanitizer)
×
118
        .proxyConfig(this.proxyConfig)
×
119
        .timeoutConfig(this.timeoutConfig)
×
120
        .build();
×
121
  }
122

123
  public NetworkSession withRetryStrategy(RetryStrategy retryStrategy) {
124
    return new Builder()
×
125
        .additionalHeaders(this.additionalHeaders)
×
126
        .baseUrls(this.baseUrls)
×
127
        .interceptors(this.interceptors)
×
128
        .networkClient(this.networkClient)
×
129
        .retryStrategy(retryStrategy)
×
130
        .dataSanitizer(this.dataSanitizer)
×
131
        .proxyConfig(this.proxyConfig)
×
132
        .timeoutConfig(this.timeoutConfig)
×
133
        .build();
×
134
  }
135

136
  public NetworkSession withDataSanitizer(DataSanitizer dataSanitizer) {
137
    return new Builder()
×
138
        .additionalHeaders(this.additionalHeaders)
×
139
        .baseUrls(this.baseUrls)
×
140
        .interceptors(this.interceptors)
×
141
        .networkClient(this.networkClient)
×
142
        .retryStrategy(this.retryStrategy)
×
143
        .dataSanitizer(dataSanitizer)
×
144
        .proxyConfig(this.proxyConfig)
×
145
        .timeoutConfig(this.timeoutConfig)
×
146
        .build();
×
147
  }
148

149
  public NetworkSession withProxy(ProxyConfig config) {
150
    if (config == null) {
×
151
      throw new IllegalArgumentException("ProxyConfig cannot be null");
×
152
    }
153
    if (!(this.networkClient instanceof BoxNetworkClient)) {
×
154
      throw new BoxSDKError("Proxies are only supported for BoxNetworkClient");
×
155
    }
156
    BoxNetworkClient newClient = ((BoxNetworkClient) this.networkClient).withProxy(config);
×
157
    return new Builder()
×
158
        .additionalHeaders(this.additionalHeaders)
×
159
        .baseUrls(this.baseUrls)
×
160
        .interceptors(this.interceptors)
×
161
        .networkClient(newClient)
×
162
        .retryStrategy(this.retryStrategy)
×
163
        .dataSanitizer(this.dataSanitizer)
×
164
        .proxyConfig(config)
×
165
        .timeoutConfig(this.timeoutConfig)
×
166
        .build();
×
167
  }
168

169
  public NetworkSession withTimeoutConfig(TimeoutConfig timeoutConfig) {
170
    if (timeoutConfig == null) {
×
171
      throw new IllegalArgumentException("TimeoutConfig cannot be null");
×
172
    }
173

174
    if (!(this.networkClient instanceof BoxNetworkClient)) {
×
175
      throw new BoxSDKError("Timeouts are only supported for BoxNetworkClient");
×
176
    }
177

178
    BoxNetworkClient newClient =
×
179
        ((BoxNetworkClient) this.networkClient).withTimeoutConfig(timeoutConfig);
×
180
    return new Builder()
×
181
        .additionalHeaders(this.additionalHeaders)
×
182
        .baseUrls(this.baseUrls)
×
183
        .interceptors(this.interceptors)
×
184
        .networkClient(newClient)
×
185
        .retryStrategy(this.retryStrategy)
×
186
        .dataSanitizer(this.dataSanitizer)
×
187
        .proxyConfig(this.proxyConfig)
×
188
        .timeoutConfig(timeoutConfig)
×
189
        .build();
×
190
  }
191

192
  public Map<String, String> getAdditionalHeaders() {
193
    return additionalHeaders;
×
194
  }
195

196
  public BaseUrls getBaseUrls() {
197
    return baseUrls;
×
198
  }
199

200
  public NetworkClient getNetworkClient() {
201
    return networkClient;
×
202
  }
203

204
  public List<Interceptor> getInterceptors() {
205
    return interceptors;
×
206
  }
207

208
  public RetryStrategy getRetryStrategy() {
209
    return retryStrategy;
×
210
  }
211

212
  public DataSanitizer getDataSanitizer() {
213
    return dataSanitizer;
×
214
  }
215

216
  public ProxyConfig getProxyConfig() {
217
    return proxyConfig;
×
218
  }
219

220
  public TimeoutConfig getTimeoutConfig() {
221
    return timeoutConfig;
×
222
  }
223

224
  public static class Builder {
225

226
    protected Map<String, String> additionalHeaders = new HashMap<>();
×
227

228
    protected BaseUrls baseUrls = new BaseUrls();
×
229

230
    protected NetworkClient networkClient;
231

232
    protected List<Interceptor> interceptors = new ArrayList<>();
×
233

234
    protected RetryStrategy retryStrategy;
235

236
    protected DataSanitizer dataSanitizer;
237

238
    protected ProxyConfig proxyConfig;
239

240
    protected TimeoutConfig timeoutConfig;
241

242
    public Builder() {
×
243
      networkClient = new BoxNetworkClient();
×
244
      retryStrategy = new BoxRetryStrategy();
×
245
      dataSanitizer = new DataSanitizer();
×
246
    }
×
247

248
    public Builder additionalHeaders(Map<String, String> additionalHeaders) {
249
      this.additionalHeaders = additionalHeaders;
×
250
      return this;
×
251
    }
252

253
    public Builder baseUrls(BaseUrls baseUrls) {
254
      this.baseUrls = baseUrls;
×
255
      return this;
×
256
    }
257

258
    public Builder networkClient(NetworkClient networkClient) {
259
      this.networkClient = networkClient;
×
260
      return this;
×
261
    }
262

263
    public Builder interceptors(List<Interceptor> interceptors) {
264
      this.interceptors = interceptors;
×
265
      return this;
×
266
    }
267

268
    public Builder retryStrategy(RetryStrategy retryStrategy) {
269
      this.retryStrategy = retryStrategy;
×
270
      return this;
×
271
    }
272

273
    public Builder dataSanitizer(DataSanitizer dataSanitizer) {
274
      this.dataSanitizer = dataSanitizer;
×
275
      return this;
×
276
    }
277

278
    public Builder proxyConfig(ProxyConfig proxyConfig) {
279
      this.proxyConfig = proxyConfig;
×
280
      return this;
×
281
    }
282

283
    public Builder timeoutConfig(TimeoutConfig timeoutConfig) {
284
      this.timeoutConfig = timeoutConfig;
×
285
      return this;
×
286
    }
287

288
    public NetworkSession build() {
289
      return new NetworkSession(this);
×
290
    }
291
  }
292
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc