public void setValue(@Released OffHeapRegionEntry regionEntry, @Unretained Object value) {
    // setValue is called when synced so I don't need to worry
    // about oldAddress being released by someone else.
    final long newAddress = TokenAddress.objectToAddress(value);
    long oldAddress;

    do {
      oldAddress = regionEntry.getAddress();
    } while (!regionEntry.setAddress(oldAddress, newAddress));

    ReferenceCountHelper.setReferenceCountOwner(regionEntry);
    releaseAddress(oldAddress);
    ReferenceCountHelper.setReferenceCountOwner(null);
  }
The previous value at the address in 're' will be @Released and then the address in 're' will
be set to the @Unretained address of 'v'.
geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperInstance.java