Skip to content

Commit c11b6c1

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

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-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: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,26 @@ 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, version.indexOf('.', 2));
251+
} else {
252+
int dot = version.indexOf(".");
253+
if (dot != -1) {
254+
version = version.substring(0, dot);
255+
} else {
256+
version = "-1";
257+
}
258+
}
259+
return Integer.parseInt(version);
260+
} catch (Exception e) {
261+
Logger.error("Failed to parse java version", e);
262+
return -1;
263+
}
264+
}
265+
246266
/**
247267
* This function seeks for the value of className in all the super classes of the given object.
248268
*

0 commit comments

Comments
 (0)