Skip to content

Commit 8fe8515

Browse files
authored
Don't call .toString() or .length() on null strings/urls (Azure#44933)
* changes to logging * pr comments
1 parent 878fb75 commit 8fe8515

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src/main/java/com/azure/monitor/opentelemetry/autoconfigure/implementation/quickpulse/QuickPulse.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.concurrent.Executors;
2525
import java.util.concurrent.atomic.AtomicReference;
2626
import java.util.function.Supplier;
27+
import java.util.Objects;
2728

2829
public class QuickPulse {
2930

@@ -81,8 +82,8 @@ private void initialize(HttpPipeline httpPipeline, Supplier<URL> endpointUrl, Su
8182
if (LOGGER.canLogAtLevel(LogLevel.VERBOSE)) {
8283
LOGGER.verbose(
8384
"Initializing QuickPulse with instrumentation key: {} , URL {}, rolename {}, role instance {}, sdk version {}",
84-
IKeyMasker.mask(instrumentationKey.get()), endpointUrl.get().toString(), roleName, roleInstance,
85-
sdkVersion);
85+
Objects.toString(IKeyMasker.mask(instrumentationKey.get())), Objects.toString(endpointUrl.get()),
86+
roleName, roleInstance, sdkVersion);
8687
}
8788

8889
String quickPulseId = UUID.randomUUID().toString().replace("-", "");

sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src/main/java/com/azure/monitor/opentelemetry/autoconfigure/implementation/quickpulse/QuickPulseDataSender.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
import com.azure.monitor.opentelemetry.autoconfigure.implementation.quickpulse.swagger.models.CollectionConfigurationInfo;
1313
import com.azure.monitor.opentelemetry.autoconfigure.implementation.quickpulse.swagger.models.MonitoringDataPoint;
1414
import com.azure.monitor.opentelemetry.autoconfigure.implementation.quickpulse.swagger.models.PublishHeaders;
15+
import com.azure.monitor.opentelemetry.autoconfigure.implementation.utils.IKeyMasker;
1516
import com.azure.monitor.opentelemetry.autoconfigure.implementation.utils.Strings;
1617

1718
import java.io.IOException;
1819
import java.net.URL;
1920
import java.util.ArrayList;
2021
import java.util.Date;
2122
import java.util.List;
23+
import java.util.Objects;
2224
import java.util.concurrent.ArrayBlockingQueue;
2325
import java.util.concurrent.atomic.AtomicReference;
2426
import java.util.function.Supplier;
@@ -55,7 +57,7 @@ class QuickPulseDataSender implements Runnable {
5557
this.instrumentationKey = instrumentationKey;
5658
this.configuration = configuration;
5759
logger.verbose("QuickPulseDataSender initialized with endpointUrl: {}, instrumentationKey: {}",
58-
endpointUrl.get().toString(), instrumentationKey.get());
60+
Objects.toString(endpointUrl.get()), Objects.toString(IKeyMasker.mask(instrumentationKey.get())));
5961
}
6062

6163
@Override

sdk/monitor/azure-monitor-opentelemetry-autoconfigure/src/main/java/com/azure/monitor/opentelemetry/autoconfigure/implementation/utils/IKeyMasker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ private IKeyMasker() {
1212

1313
public static String mask(String instrumentationKey) {
1414
// Tests could set the connection string with a short one
15-
if (instrumentationKey.length() > CHARACTERS_TO_KEEP_AT_END) {
15+
if (instrumentationKey != null && instrumentationKey.length() > CHARACTERS_TO_KEEP_AT_END) {
1616
return "*" + instrumentationKey.substring(instrumentationKey.length() - CHARACTERS_TO_KEEP_AT_END);
1717
}
1818
return instrumentationKey;

0 commit comments

Comments
 (0)