Files
spring-boot-demo-oom/classloader-leak/plugin-src/com/ankurm/oomplugin/PluginTask.java
T

26 lines
956 B
Java

package com.ankurm.oomplugin;
/**
* The "plugin" that gets hot-reloaded. Deliberately simple: one sizeable field so each
* reload's copy of this class has a visible memory footprint in the heap dump, and one
* method so the reload actually does something observable.
*
* This file is compiled once by scripts/build-plugin.sh into classloader-leak's resources
* as a committed .class file -- it is intentionally NOT part of the module's own Maven
* compilation unit, because the whole point of the demo is loading these bytes through a
* *different* ClassLoader on every "reload", which only makes sense if the bytes already
* exist as a resource rather than as a class the app's own classloader already loaded.
*/
public class PluginTask implements Runnable {
private final byte[] payload = new byte[256 * 1024];
public PluginTask() {
payload[0] = 1;
}
@Override
public void run() {
payload[1] = 2;
}
}