/**
   * @param cctx Cache context.
   * @param ldr Class loader.
   * @throws IgniteCheckedException In case of error.
   */
  void unmarshal(GridCacheContext cctx, @Nullable ClassLoader ldr) throws IgniteCheckedException {
    if (!isFiltered()) {
      key.finishUnmarshal(cctx.cacheObjectContext(), ldr);

      if (newVal != null) newVal.finishUnmarshal(cctx.cacheObjectContext(), ldr);

      if (oldVal != null) oldVal.finishUnmarshal(cctx.cacheObjectContext(), ldr);
    }
  }
 /**
  * This method is called after the whole message is received and is responsible for unmarshalling
  * state.
  *
  * @param ctx Context.
  * @param ldr Class loader.
  * @throws IgniteCheckedException If failed.
  */
 public void finishUnmarshal(GridCacheContext ctx, ClassLoader ldr) throws IgniteCheckedException {
   if (val != null) val.finishUnmarshal(ctx.cacheObjectContext(), ldr);
 }