Skip to content

Commit b3e88f1

Browse files
Merge pull request #23 from microsoftgraph/telemetry-fix
Added null check for telemetry options
2 parents 71c1083 + d93a7f0 commit b3e88f1

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

src/main/java/com/microsoft/graph/httpcore/HttpClients.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ private HttpClients() {
1616
* @return OkHttpClient.Builder() custom builder for developer to add its own interceptors to it
1717
*/
1818
public static Builder custom() {
19-
return new OkHttpClient.Builder();
19+
return new OkHttpClient.Builder().addInterceptor(new TelemetryHandler());
2020
}
2121

2222
/**
@@ -43,9 +43,11 @@ public static OkHttpClient createDefault(ICoreAuthenticationProvider auth) {
4343
*/
4444
public static OkHttpClient createFromInterceptors(Interceptor[] interceptors) {
4545
OkHttpClient.Builder builder = new OkHttpClient.Builder();
46-
for(Interceptor interceptor : interceptors) {
47-
builder.addInterceptor(interceptor);
48-
}
46+
if(interceptors != null)
47+
for(Interceptor interceptor : interceptors) {
48+
if(interceptor != null)
49+
builder.addInterceptor(interceptor);
50+
}
4951
builder.addInterceptor(new TelemetryHandler());
5052
return builder.build();
5153
}

src/main/java/com/microsoft/graph/httpcore/TelemetryHandler.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ public Response intercept(Chain chain) throws IOException {
2121
Request.Builder telemetryAddedBuilder = request.newBuilder();
2222

2323
TelemetryOptions telemetryOptions = request.tag(TelemetryOptions.class);
24+
if(telemetryOptions == null)
25+
telemetryOptions = new TelemetryOptions();
2426

25-
if(telemetryOptions != null) {
26-
String featureUsage = "(featureUsage=" + telemetryOptions.getFeatureUsage() + ")";
27-
String sdkversion_value = GRAPH_VERSION_PREFIX + "/" + VERSION + " " + featureUsage;
28-
telemetryAddedBuilder.addHeader(SDK_VERSION, sdkversion_value);
27+
String featureUsage = "(featureUsage=" + telemetryOptions.getFeatureUsage() + ")";
28+
String sdkversion_value = GRAPH_VERSION_PREFIX + "/" + VERSION + " " + featureUsage;
29+
telemetryAddedBuilder.addHeader(SDK_VERSION, sdkversion_value);
2930

30-
if(request.header(CLIENT_REQUEST_ID) == null) {
31-
telemetryAddedBuilder.addHeader(CLIENT_REQUEST_ID, telemetryOptions.getClientRequestId());
32-
}
31+
if(request.header(CLIENT_REQUEST_ID) == null) {
32+
telemetryAddedBuilder.addHeader(CLIENT_REQUEST_ID, telemetryOptions.getClientRequestId());
3333
}
3434

3535
return chain.proceed(telemetryAddedBuilder.build());

src/test/java/com/microsoft/graph/httpcore/TelemetryHandlerTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,17 @@ public Request authenticateRequest(Request request) {
5656
assertNotNull(response);
5757
assertTrue(response.request().header("SdkVersion").contains(expectedHeader));
5858
}
59+
60+
@Test
61+
public void arrayInterceptorEmptyTest() throws IOException {
62+
Interceptor[] interceptors = null;
63+
OkHttpClient client = HttpClients.createFromInterceptors(interceptors);
64+
String expectedHeader = TelemetryHandler.SDK_VERSION + TelemetryHandler.GRAPH_VERSION_PREFIX +"/"
65+
+TelemetryHandler.VERSION;
66+
Request request = new Request.Builder().url("https://graph.microsoft.com/v1.0/users/").build();
67+
Response response = client.newCall(request).execute();
68+
assertNotNull(response);
69+
assertTrue(response.request().header("SdkVersion").contains(expectedHeader));
70+
}
71+
5972
}

0 commit comments

Comments
 (0)