@Unretained public Object getRawOldValue() { return basicGetOldValue(); }
public String getOldValueStringForm() { return StringUtils.forceToString(basicGetOldValue()); }
/** * If the old value is stored off-heap return a retained OFF_HEAP_REFERENCE (caller must release). * * @return a retained OFF_HEAP_REFERENCE if the old value is off-heap; otherwise returns null */ @Retained(ENTRY_EVENT_OLD_VALUE) public StoredObject getOffHeapOldValue() { return convertToStoredObject(basicGetOldValue()); }
/** * Compute an estimate of the size of the old value * * @return the size of serialized bytes for the old value */ public int getOldValSize() { int oldSize = 0; if (hasOldValue()) { try { oldSize = CachedDeserializableFactory.calcMemSize(basicGetOldValue()); } catch (IllegalArgumentException iae) { logger.warn("DataStore failed to calculate size of old value", iae); oldSize = 0; } } return oldSize; }
@Override public boolean isOldValueAvailable() { if (isOriginRemote() && getRegion().isProxy()) { return false; } else { return basicGetOldValue() != Token.NOT_AVAILABLE; } }
/** * Just like getRawOldValue except if the raw old value is off-heap deserialize it. */ @Unretained(ENTRY_EVENT_OLD_VALUE) public Object getOldValueAsOffHeapDeserializedOrRaw() { Object result = basicGetOldValue(); if (mayHaveOffHeapReferences() && result instanceof StoredObject) { result = ((CachedDeserializable) result).getDeserializedForReading(); } return AbstractRegion.handleNotAvailable(result); // fixes 49499 }
/** * Like getRawOldValue except that if the result is an off-heap reference then copy it to the * heap. To avoid the heap copy use getRawOldValue instead. */ public Object getRawOldValueAsHeapObject() { Object result = basicGetOldValue(); if (mayHaveOffHeapReferences()) { result = OffHeapHelper.copyIfNeeded(result, getRegion().getCache()); } return result; }
/** * @return null if old value is not serialized; otherwise returns a SerializedCacheValueImpl * containing the old value. */ @Override public SerializedCacheValue<?> getSerializedOldValue() { @Unretained(ENTRY_EVENT_OLD_VALUE) final Object tmp = basicGetOldValue(); if (tmp instanceof CachedDeserializable) { CachedDeserializable cd = (CachedDeserializable) tmp; if (!cd.isSerialized()) { return null; } return new SerializedCacheValueImpl(this, getRegion(), this.re, cd, this.oldValueBytes); } else { return null; } }
@Test public void setOldValueForcedSetsOldValue() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue("oldValue", true); assertEquals("oldValue", e.basicGetOldValue()); }
@Test public void setOldValueForcedWithRemoveTokenChangesOldValueToNull() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(Token.REMOVED_PHASE1, true); assertEquals(null, e.basicGetOldValue()); }
@Test public void setOldValueForcedWithInvalidTokenNullsOldValue() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(Token.INVALID, true); assertEquals(null, e.basicGetOldValue()); }
@Test public void setOldValueUnforcedWithRemoveTokenChangesOldValueToNull() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(Token.REMOVED_PHASE1, false); assertEquals(null, e.basicGetOldValue()); }
@Test public void setOldValueUnforcedWithNullChangesOldValueToNull() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(null, false); assertEquals(null, e.basicGetOldValue()); }
@Test public void setOldValueUnforcedWithNotAvailableTokenSetsOldValue() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(Token.NOT_AVAILABLE, false); assertEquals(Token.NOT_AVAILABLE, e.basicGetOldValue()); }
@Test public void setOldValueUnforcedWithInvalidTokenNullsOldValue() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(Token.INVALID, false); assertEquals(null, e.basicGetOldValue()); }
@Test public void setOldValueForcedWithNullChangesOldValueToNull() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(null, true); assertEquals(null, e.basicGetOldValue()); }
@Test public void setOldValueForcedWithNotAvailableTokenSetsOldValue() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue(Token.NOT_AVAILABLE, true); assertEquals(Token.NOT_AVAILABLE, e.basicGetOldValue()); }
@Test public void setOldUnforcedValueSetsOldValue() { LocalRegion region = mock(LocalRegion.class); EntryEventImpl e = createEntryEvent(region, null); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue("oldValue", false); assertEquals("oldValue", e.basicGetOldValue()); }
@Test public void setOldValueForcedWithDisabledSetsOldValue() { EntryEventImpl e = new EntryEventImplWithOldValuesDisabled(); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue("oldValue", true); assertEquals("oldValue", e.basicGetOldValue()); }
@Test public void setOldValueUnforcedWithDisabledSetsNotAvailable() { EntryEventImpl e = new EntryEventImplWithOldValuesDisabled(); String UNINITIALIZED = "Uninitialized"; e.basicSetOldValue(UNINITIALIZED); e.setOldValue("oldValue", false); assertEquals(Token.NOT_AVAILABLE, e.basicGetOldValue()); }