-
Notifications
You must be signed in to change notification settings - Fork 325
Description
Describe the bug
VisualVM fails to process instance of java.util.logging.LogRecord if has custom Level class instance (extending java.util.logging.Level) in level member. In our case we extended Level class to add more levels.
Root of the problem is in libs.profiler/profiler.heapwalker/src/org/graalvm/visualvm/lib/profiler/heapwalk/details/jdk/UtilDetailsProvider.java, class DetailsLogRecord, method getLevel(), where IllegalArgument exception is thrown in Level.parse().
To Reproduce
Steps to reproduce the behavior:
- Extend java.util.logging.Level class
- Create instanceof of java.util.logging.LogRecord using class from 1.
- Run code with instance of java.util.logging.LogRecord from 2. in memory
- Open running process in VisualVM
- Create a heapdump
- Go to objects, search for LogRecord and try opening the details
Expected behavior
VisualVM should not fail on processing such an object in DetailsLogRecord class, exception should be caught and this object should be shown just like any other object that has no special parsing of its content.
VisualVM log
Screenshots
Desktop (please complete the following information):
- Linux
- OpenJDK 64-Bit Server VM 17.0.9+9; Eclipse Adoptium
- 2.1.7
Additional context