if (mustCollect || heapFull || nurseryFull) {
boolean metaDataFull = metaDataSpace.reservedPages() > META_DATA_FULL_THRESHOLD; if (mustCollect || heapFull || nurseryFull || metaDataFull) {
  public final boolean poll(boolean mustCollect, Space space)     throws LogicallyUninterruptiblePragma {    if (collectionsInitiated > 0 || !initialized || space == metaDataSpace)      return false;    mustCollect |= stressTestGCRequired();    boolean heapFull = getPagesReserved() > getTotalPages();    boolean nurseryFull = nurserySpace.reservedPages() > nurserySize.getMaxNursery();    if (mustCollect || heapFull || nurseryFull) {      required = space.reservedPages() - space.committedPages();      if (space == nurserySpace || (Plan.COPY_MATURE() && (space == activeMatureSpace)))        required = required<<1;  // must account for copy reserve      int nurseryYield = ((int)((float) nurserySpace.committedPages() * SURVIVAL_ESTIMATE))<<1;      fullHeapGC = mustCollect || (nurseryYield < required) || fullHeapGC;      Collection.triggerCollection(Collection.RESOURCE_GC_TRIGGER);      return true;    }    return false;  }