Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions gprofiler/profilers/java.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import signal
from collections import Counter
from enum import Enum
from itertools import dropwhile
from pathlib import Path
from threading import Event
from typing import List, Optional, Set
Expand Down Expand Up @@ -387,6 +388,11 @@ def parse_jvm_version(version_string: str) -> JvmVersion:
# We are taking the version from the first line, and the build number and vm name from the last line

lines = version_string.splitlines()

# the version always starts with "openjdk version" or "java version". strip all lines
# before that.
lines = list(dropwhile(lambda l: not ("openjdk version" in l or "java version" in l), lines))

# version is always in quotes
_, version_str, _ = lines[0].split('"')
build_str = lines[2].split("(build ")[1]
Expand Down Expand Up @@ -577,9 +583,9 @@ def _is_jvm_type_supported(self, java_version_cmd_output: str) -> bool:
def _is_jvm_version_supported(self, java_version_cmd_output: str) -> bool:
try:
jvm_version = parse_jvm_version(java_version_cmd_output)
logger.info(f"Checking support for java version {jvm_version}")
except Exception as e:
logger.exception(f"Failed to parse java -version output {java_version_cmd_output}: {e}")
logger.info("Checking support for java version", jvm_version=jvm_version)
except Exception:
logger.exception("Failed to parse java -version output", java_version_cmd_output=java_version_cmd_output)
return False

if jvm_version.version.major not in self.MINIMAL_SUPPORTED_VERSIONS:
Expand Down