How can I extract raw byte arrays stored in Map<?, byte[]> objects from a Java heap dump?

75 views Asked by At

I have a Java application (Kafka Streams app) where a few ConcurrentSkipListMap objects are maintained (in InMemoryWindowStore). The type of the key of the maps is org.apache.kafka.common.utils.Bytes and the values are byte[]. The byte arrays are serialized Protocol Buffers objects.

I have taken a heap dump of this app for investigating an issue and I want to extract the byte arrays stored as the values of the maps, deserialize those byte arrays into Protocol Buffers objects and inspect them. Those maps contain 3 million mappings (based on what I see on Eclipse Memory Analyzer). Is there a good way to somehow extract those raw byte arrays in the maps in the heap dump?

1

There are 1 answers

3
user13762112 On

Select the byte array, then use Copy > Save Value to File.