package com.example.foo;
public class SomeClass {
public static volatile SomeClass leak = null;
public final byte[] data;
public final String string;
public SomeClass() {
leak = this;
this.data = new byte[Integer.MAX_VALUE];
this.string = "something";
}
@Override
public String toString() {
return this.string;
}
public static void main(final String[] args) throws Exception {
Object object = "nothing";
try {
object = new SomeClass();
} catch (final Throwable e) { }
System.out.printf("object = %s (%s)\n", object, object.getClass().getSimpleName());
System.out.printf("leak = %s (%s)\n", leak, leak.getClass().getSimpleName());
}
}
Comments