if (systemGC != null && !sawCurrentTimeMillis) { bugReporter.reportBug(systemGC);
if (gcInvocationBugReport != null && !sawCurrentTimeMillis) {   boolean outOfMemoryHandler = false; for (int i = 0; i < exceptionTable.length; ++i) { CodeException handler = exceptionTable[i]; if (gcInvocationPC < handler.getHandlerPC() || gcInvocationPC > handler.getHandlerPC() + OOM_CATCH_LEN) continue; int catchTypeIndex = handler.getCatchType(); if (catchTypeIndex > 0) { ConstantPool cp = thisClass.getConstantPool(); Constant constant = cp.getConstant(catchTypeIndex); if (constant instanceof ConstantClass) { String exClassName = (String) ((ConstantClass) constant).getConstantValue(cp); if (exClassName.equals("java/lang/OutOfMemoryError")) { outOfMemoryHandler = true; break; } } } }  if (!outOfMemoryHandler) bugReporter.reportBug(gcInvocationBugReport);
   private void flush() {	if (systemGC != null && !sawCurrentTimeMillis) {		bugReporter.reportBug(systemGC);	}	sawCurrentTimeMillis = false;	systemGC = null;	alreadyReported.clear();   }