code: private Object tryPublishReserved(Object key, Object remoteValue, long reservationId, boolean deserialize) {
          assert remoteValue != NOT_CACHED;
  
          // caching null value is not supported for ICache Near Cache
          if (remoteValue == null) {
              // needed to delete reserved record
              invalidateNearCache(key);
              return null;
          }
  
          Object cachedValue = null;
          if (reservationId != NOT_RESERVED) {
              cachedValue = nearCache.tryPublishReserved(key, remoteValue, reservationId, deserialize);
          }
          return cachedValue == null ? remoteValue : cachedValue;
      }
docs: Publishes value got from remote or deletes reserved record when remote value is {@code null}.
  
  @param key           key to update in Near Cache
  @param remoteValue   fetched value from server
  @param reservationId reservation ID for this key
  @param deserialize   deserialize returned value
  @return last known value for the key