Skip to content

Commit 762836b

Browse files
authored
fix(java): catch null exception for ClientOptions APIC-537 (#703)
1 parent 90e531a commit 762836b

File tree

8 files changed

+18
-22
lines changed

8 files changed

+18
-22
lines changed

clients/algoliasearch-client-java-2/algoliasearch-core/src/main/java/com/algolia/ApiClient.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public ApiClient(String appId, String apiKey, String clientName, String version,
3737

3838
this.algoliaAgent = new AlgoliaAgent(version);
3939
this.algoliaAgent.addSegment(new AlgoliaAgent.Segment(clientName, version));
40-
if (options.getAlgoliaAgentSegments() != null) {
40+
if (options != null && options.getAlgoliaAgentSegments() != null) {
4141
for (AlgoliaAgent.Segment segment : options.getAlgoliaAgentSegments()) {
4242
this.algoliaAgent.addSegment(segment);
4343
}
@@ -49,8 +49,9 @@ public ApiClient(String appId, String apiKey, String clientName, String version,
4949
addDefaultHeader("Accept", this.contentType);
5050
addDefaultHeader("Content-Type", this.contentType);
5151

52-
this.requester = options.getRequester();
53-
if (this.requester == null) {
52+
if (options != null && options.getRequester() != null) {
53+
this.requester = options.getRequester();
54+
} else {
5455
this.requester = new HttpRequester();
5556
}
5657
}

clients/algoliasearch-client-java-2/algoliasearch-core/src/main/java/com/algolia/utils/ClientOptions.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,10 @@ public class ClientOptions {
1010
private List<AlgoliaAgent.Segment> algoliaAgentSegments;
1111
private List<StatefulHost> hosts;
1212

13-
private ClientOptions() {
13+
public ClientOptions() {
1414
algoliaAgentSegments = new ArrayList<>();
1515
}
1616

17-
public static ClientOptions build() {
18-
return new ClientOptions();
19-
}
20-
2117
public Requester getRequester() {
2218
return this.requester;
2319
}

playground/java/src/main/java/com/algolia/playground/Search.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ public static void main(String[] args) {
2626
SearchClient client = new SearchClient(
2727
dotenv.get("ALGOLIA_APPLICATION_ID"),
2828
dotenv.get("ALGOLIA_ADMIN_KEY"),
29-
ClientOptions
30-
.build()
29+
new ClientOptions()
3130
.addAlgoliaAgentSegment("test", "8.0.0")
3231
.addAlgoliaAgentSegment("JVM", "11.0.14")
3332
.addAlgoliaAgentSegment("no version")

templates/java/libraries/okhttp-gson/api.mustache

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ public class {{classname}} extends ApiClient {
4848

4949
public {{classname}}(String appId, String apiKey, String region, ClientOptions options) {
5050
super(appId, apiKey, "{{{baseName}}}", "{{{packageVersion}}}", options);
51-
if (options.getHosts() == null) {
52-
this.setHosts(getDefaultHosts(region));
53-
} else {
51+
if (options != null && options.getHosts() != null) {
5452
this.setHosts(options.getHosts());
53+
} else {
54+
this.setHosts(getDefaultHosts(region));
5555
}
5656
this.setConnectTimeout(2000);
5757
this.setReadTimeout(5000);
@@ -65,11 +65,11 @@ public class {{classname}} extends ApiClient {
6565
}
6666

6767
public {{classname}}(String appId, String apiKey, ClientOptions options) {
68-
super(appId, apiKey, "{{{baseName}}}", "{{{packageVersion}}}", options);
69-
if (options.getHosts() == null) {
70-
this.setHosts(getDefaultHosts(appId));
71-
} else {
68+
super(appId, apiKey, "{{{baseName}}}", "{{{packageVersion}}}", options);
69+
if (options != null && options.getHosts() != null) {
7270
this.setHosts(options.getHosts());
71+
} else {
72+
this.setHosts(getDefaultHosts(appId));
7373
}
7474
this.setConnectTimeout(2000);
7575
this.setReadTimeout(5000);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{^autoCreateClient}}{{client}} $client = {{/autoCreateClient}}new {{client}}("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}",{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}"{{parametersWithDataTypeMap.region.value}}",{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}ClientOptions.build().setRequester(requester));
1+
{{^autoCreateClient}}{{client}} $client = {{/autoCreateClient}}new {{client}}("{{parametersWithDataTypeMap.appId.value}}","{{parametersWithDataTypeMap.apiKey.value}}",{{#hasRegionalHost}}{{#parametersWithDataTypeMap.region}}"{{parametersWithDataTypeMap.region.value}}",{{/parametersWithDataTypeMap.region}}{{/hasRegionalHost}}new ClientOptions().setRequester(requester));

templates/java/tests/client/suite.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class {{client}}ClientTests {
2929
}
3030

3131
{{client}} createClient() {
32-
return new {{client}}("appId", "apiKey", {{#hasRegionalHost}}"{{defaultRegion}}", {{/hasRegionalHost}}ClientOptions.build().setRequester(requester));
32+
return new {{client}}("appId", "apiKey", {{#hasRegionalHost}}"{{defaultRegion}}", {{/hasRegionalHost}}new ClientOptions().setRequester(requester));
3333
}
3434

3535
{{#blocksClient}}

templates/java/tests/requests/requests.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class {{client}}RequestsTests {
3434
HttpRequester requester = new HttpRequester();
3535
echo = new EchoInterceptor();
3636
requester.addInterceptor(echo.getEchoInterceptor());
37-
client = new {{client}}("appId", "apiKey", {{#hasRegionalHost}}"{{defaultRegion}}", {{/hasRegionalHost}}ClientOptions.build().setRequester(requester));
37+
client = new {{client}}("appId", "apiKey", {{#hasRegionalHost}}"{{defaultRegion}}", {{/hasRegionalHost}}new ClientOptions().setRequester(requester));
3838
}
3939

4040
{{#blocksRequests}}

website/docs/clients/guides/customized-client-usage.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ import com.algolia.api.SearchClient;
126126
SearchClient client = new SearchClient(
127127
"<YOUR_APP_ID>",
128128
"<YOUR_API_KEY>",
129-
ClientOptions.build().addAlgoliaAgentSegments("my user agent", "optional version")
129+
new ClientOptions().addAlgoliaAgentSegments("my user agent", "optional version")
130130
);
131131
```
132132

@@ -164,7 +164,7 @@ import com.algolia.api.SearchClient;
164164
SearchClient client = new SearchClient(
165165
"<YOUR_APP_ID>",
166166
"<YOUR_API_KEY>",
167-
ClientOptions.build().setRequester(new MyOwnRequester())
167+
new ClientOptions().setRequester(new MyOwnRequester())
168168
);
169169
```
170170

0 commit comments

Comments
 (0)