Skip to content

Commit 1fe1cde

Browse files
Copilottrask
andcommitted
Fix EnumOrdinal ErrorProne violations by using explicit enum mapping instead of ordinal-based array access
Co-authored-by: trask <[email protected]>
1 parent 5d3e769 commit 1fe1cde

File tree

3 files changed

+74
-8
lines changed

3 files changed

+74
-8
lines changed

buildSrc/src/main/kotlin/ai.errorprone-conventions.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ tasks {
7373
// TimeInStaticInitializer check fixed - no longer disabled
7474

7575
// New checks in ErrorProne 2.38.0 that we want to disable
76-
disable("AddNullMarkedToPackageInfo")
76+
disable("AddNullMarkedToPackageInfo") // requires JSpecify dependency not compatible with Java 8
7777

7878
// Other new checks that cause warnings in our codebase
79-
disable("EnumOrdinal")
79+
// EnumOrdinal check fixed - no longer disabled
8080

8181
if (name.contains("Jmh")) {
8282
disable("MemberName")

classic-sdk/core/src/main/java/com/microsoft/applicationinsights/telemetry/ExceptionTelemetry.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,14 @@ public void setSeverityLevel(SeverityLevel severityLevel) {
6060
data.setSeverityLevel(
6161
severityLevel == null
6262
? null
63-
: com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.values()[
64-
severityLevel.getValue()]);
63+
: mapToInternalSeverityLevel(severityLevel));
6564
}
6665

6766
@Nullable
6867
public SeverityLevel getSeverityLevel() {
6968
return data.getSeverityLevel() == null
7069
? null
71-
: SeverityLevel.values()[data.getSeverityLevel().getValue()];
70+
: mapFromInternalSeverityLevel(data.getSeverityLevel());
7271
}
7372

7473
/** Gets a dictionary of custom defined metrics. */
@@ -80,4 +79,38 @@ public ConcurrentMap<String, Double> getMetrics() {
8079
protected ExceptionData getData() {
8180
return data;
8281
}
82+
83+
private static com.microsoft.applicationinsights.internal.schemav2.SeverityLevel mapToInternalSeverityLevel(SeverityLevel severityLevel) {
84+
switch (severityLevel) {
85+
case Verbose:
86+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Verbose;
87+
case Information:
88+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Information;
89+
case Warning:
90+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Warning;
91+
case Error:
92+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Error;
93+
case Critical:
94+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Critical;
95+
default:
96+
throw new IllegalArgumentException("Unknown SeverityLevel: " + severityLevel);
97+
}
98+
}
99+
100+
private static SeverityLevel mapFromInternalSeverityLevel(com.microsoft.applicationinsights.internal.schemav2.SeverityLevel internalSeverityLevel) {
101+
switch (internalSeverityLevel) {
102+
case Verbose:
103+
return SeverityLevel.Verbose;
104+
case Information:
105+
return SeverityLevel.Information;
106+
case Warning:
107+
return SeverityLevel.Warning;
108+
case Error:
109+
return SeverityLevel.Error;
110+
case Critical:
111+
return SeverityLevel.Critical;
112+
default:
113+
throw new IllegalArgumentException("Unknown internal SeverityLevel: " + internalSeverityLevel);
114+
}
115+
}
83116
}

classic-sdk/core/src/main/java/com/microsoft/applicationinsights/telemetry/TraceTelemetry.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,52 @@ public void setSeverityLevel(SeverityLevel severityLevel) {
5151
data.setSeverityLevel(
5252
severityLevel == null
5353
? null
54-
: com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.values()[
55-
severityLevel.getValue()]);
54+
: mapToInternalSeverityLevel(severityLevel));
5655
}
5756

5857
@Nullable
5958
public SeverityLevel getSeverityLevel() {
6059
return data.getSeverityLevel() == null
6160
? null
62-
: SeverityLevel.values()[data.getSeverityLevel().getValue()];
61+
: mapFromInternalSeverityLevel(data.getSeverityLevel());
6362
}
6463

6564
@Override
6665
protected MessageData getData() {
6766
return data;
6867
}
68+
69+
private static com.microsoft.applicationinsights.internal.schemav2.SeverityLevel mapToInternalSeverityLevel(SeverityLevel severityLevel) {
70+
switch (severityLevel) {
71+
case Verbose:
72+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Verbose;
73+
case Information:
74+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Information;
75+
case Warning:
76+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Warning;
77+
case Error:
78+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Error;
79+
case Critical:
80+
return com.microsoft.applicationinsights.internal.schemav2.SeverityLevel.Critical;
81+
default:
82+
throw new IllegalArgumentException("Unknown SeverityLevel: " + severityLevel);
83+
}
84+
}
85+
86+
private static SeverityLevel mapFromInternalSeverityLevel(com.microsoft.applicationinsights.internal.schemav2.SeverityLevel internalSeverityLevel) {
87+
switch (internalSeverityLevel) {
88+
case Verbose:
89+
return SeverityLevel.Verbose;
90+
case Information:
91+
return SeverityLevel.Information;
92+
case Warning:
93+
return SeverityLevel.Warning;
94+
case Error:
95+
return SeverityLevel.Error;
96+
case Critical:
97+
return SeverityLevel.Critical;
98+
default:
99+
throw new IllegalArgumentException("Unknown internal SeverityLevel: " + internalSeverityLevel);
100+
}
101+
}
69102
}

0 commit comments

Comments
 (0)