/**
   * Delayed post processing of optimized wrappers.
   *
   * @throws IOException If failed.
   * @throws ClassNotFoundException If failed.
   */
  void delayedRead() throws IOException, ClassNotFoundException {
    if (wrappers != null)
      for (GridOptimizedWrapper w = wrappers.poll(); w != null; w = wrappers.poll())
        w.delayedReadExternal(this);

    wrappers = null; // GC.
  }
  /**
   * Enqueues wrapper for delayed processing.
   *
   * @param wrapper Wrapper to enqueue.
   */
  void delay(GridOptimizedWrapper wrapper) {
    if (wrappers == null) wrappers = new LinkedList<GridOptimizedWrapper>();

    wrappers.offer(wrapper);
  }