Skip to content

Commit 45ee027

Browse files
committed
fix: better java version parsing
1 parent 6f243e5 commit 45ee027

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/main/java/io/lumigo/core/SpansContainer.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ private SpansContainer() {}
6262
public void init(Map<String, String> env, Reporter reporter, Context context, Object event) {
6363
this.clear();
6464
this.reporter = reporter;
65-
String javaVersion = System.getProperty("java.version");;
66-
67-
if (javaVersion.startsWith("17.") || javaVersion.startsWith("21.")) {
65+
int javaVersion = AwsUtils.getJavaVersion();
66+
if (javaVersion > 11) {
6867
awsTracerId = System.getProperty("com.amazonaws.xray.traceHeader");
6968
} else {
7069
awsTracerId = env.get(AMZN_TRACE_ID);

src/main/java/io/lumigo/core/utils/AwsUtils.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,24 @@ public static synchronized Span.READINESS getFunctionReadiness() {
243243
}
244244
}
245245

246+
public static int getJavaVersion() {
247+
try {
248+
String version = System.getProperty("java.version");
249+
if (version.startsWith("1.")) {
250+
version = version.substring(2, 3);
251+
} else {
252+
int dot = version.indexOf(".");
253+
if (dot != -1) {
254+
version = version.substring(0, dot);
255+
}
256+
}
257+
return Integer.parseInt(version);
258+
} catch (Exception e) {
259+
Logger.error("Failed to parse java version", e);
260+
return -1;
261+
}
262+
}
263+
246264
/**
247265
* This function seeks for the value of className in all the super classes of the given object.
248266
*

0 commit comments

Comments
 (0)