Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Дамп памяти «наживую» создать при этом невозможно
private final LinkedBlockingDeque<PooledObject<T>> idleObjects;Ну и в методе «public T borrowObject(long borrowMaxWaitMillis)» (строка 411) эта очередь активно используется.import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestOOM {
public static void main(String[] args) throws IOException {
BufferedReader rdr = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
System.out.println("Press Enter to make OOM...");
rdr.readLine();
StringBuilder stringBuilder = new StringBuilder();
while (true) {
stringBuilder.append("foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar");
}
}
}import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TestOOM {
private static final Logger LOGGER = Logger.getLogger(TestOOM.class.getName());
public static void main(String[] args) throws IOException {
BufferedReader rdr = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
LOGGER.info("Press Enter to make OOM...");
rdr.readLine();
StringBuilder stringBuilder = new StringBuilder();
try {
while (true) {
stringBuilder.append("foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar");
}
} catch (Throwable thr) {
LOGGER.log(Level.SEVERE, "Here is a some Throwable, printing it and ignoring.", thr);
}
LOGGER.info("I am still alive! Press Enter to quit...");
rdr.readLine();
}
}$ java -Xmx256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. TestOOM
мар 23, 2015 5:26:35 PM TestOOM main
INFO: Press Enter to make OOM...
java.lang.OutOfMemoryError: Java heap space
Dumping heap to ./java_pid6902.hprof ...
Heap dump file created [85808247 bytes in 0,406 secs]
мар 23, 2015 5:26:36 PM TestOOM main
SEVERE: Here is an some Throwable, printing it and ignoring.
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuilder.append(StringBuilder.java:132)
at TestOOM.main(TestOOM.java:17)
мар 23, 2015 5:26:36 PM TestOOM main
INFO: I am still alive! Press Enter to quit...at наш.пакет.СуперКласс.getConnection(СуперКласс.java:100500)
at наш.пакет.СуперКласс.плохойПлохойМетод(СуперКласс.java:100800)
12345