@Override protected StringBuilder appendFieldsToString(final StringBuilder sb) { sb.append("key="); // OFFHEAP _getValue ok: the current toString on OffHeapCachedDeserializable // is safe to use without incing refcount. final Object k = getKeyCopy(); final Object val = OffHeapRegionEntryUtils.getHeapRowForInVMValue(this); RegionEntryUtils.entryKeyString(k, val, getTableInfo(null), sb); sb.append("; byte source = " + this._getValue()); sb.append("; rawValue="); ArrayUtils.objectStringNonRecursive(val, sb); sb.append("; lockState=0x").append(Integer.toHexString(getState())); return sb; }
@Override public Object prepareValueForCache( RegionEntryContext r, Object val, boolean isEntryUpdate, boolean valHasMetadataForGfxdOffHeapUpdate) { if (okToStoreOffHeap(val) && OffHeapRegionEntryUtils.isValidValueForGfxdOffHeapStorage(val)) { // TODO:Asif:Check if this is a valid supposition // final long address = this.getAddress(); if (isEntryUpdate /* * (address == OffHeapRegionEntryHelper.REMOVED_PHASE1_ADDRESS || address * == OffHeapRegionEntryHelper.NULL_ADDRESS) || r instanceof * PlaceHolderDiskRegion */ ) { return OffHeapRegionEntryUtils.prepareValueForUpdate( this, r, val, valHasMetadataForGfxdOffHeapUpdate); } else { return OffHeapRegionEntryUtils.prepareValueForCreate(r, val, false); } } return super.prepareValueForCache(r, val, isEntryUpdate, valHasMetadataForGfxdOffHeapUpdate); }