Skip to content

Commit a4a37cd

Browse files
Recheck for null service instance to avoid micrometer NPE. (#1197)
1 parent 483798a commit a4a37cd

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

docs/src/main/asciidoc/_configprops.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
|spring.cloud.loadbalancer.retry.retry-on-all-operations | `+++false+++` | Indicates retries should be attempted on operations other than `HttpMethod.GET`}.
5454
|spring.cloud.loadbalancer.retry.retryable-status-codes | `+++{}+++` | A `Set` of status codes that should trigger a retry.
5555
|spring.cloud.loadbalancer.service-discovery.timeout | | String representation of Duration of the timeout for calls to service discovery.
56+
|spring.cloud.loadbalancer.stats.micrometer.enabled | `+++false+++` | Enables Spring Cloud LoadBalancer Micrometer stats.
5657
|spring.cloud.loadbalancer.sticky-session.add-service-instance-cookie | `+++false+++` | Indicates whether a cookie with the newly selected instance should be added by LoadBalancer.
5758
|spring.cloud.loadbalancer.sticky-session.instance-id-cookie-name | `+++sc-lb-instance-id+++` | The name of the cookie holding the preferred instance id.
5859
|spring.cloud.loadbalancer.use-raw-status-code-in-response-data | `+++false+++` | Indicates that raw status codes should be used in {@link ResponseData}.

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ private <T> TimedRequestContext buildRequestContext(LoadBalancerRequest<T> deleg
105105
@Override
106106
public <T> T execute(String serviceId, ServiceInstance serviceInstance, LoadBalancerRequest<T> request)
107107
throws IOException {
108+
if (serviceInstance == null) {
109+
throw new IllegalArgumentException("Service Instance cannot be null");
110+
}
108111
DefaultResponse defaultResponse = new DefaultResponse(serviceInstance);
109112
Set<LoadBalancerLifecycle> supportedLifecycleProcessors = getSupportedLifecycleProcessors(serviceId);
110113
Request lbRequest = request instanceof Request ? (Request) request : new DefaultRequest<>();

spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@
3333
"name": "spring.cloud.loadbalancer.enabled",
3434
"description": "Enables Spring Cloud LoadBalancer.",
3535
"type": "java.lang.Boolean"
36+
},
37+
{
38+
"defaultValue": "false",
39+
"name": "spring.cloud.loadbalancer.stats.micrometer.enabled",
40+
"description": "Enables Spring Cloud LoadBalancer Micrometer stats.",
41+
"type": "java.lang.Boolean"
3642
}
3743
]
3844
}

0 commit comments

Comments
 (0)