/** * Unlike literalValueChange, this method is not synchronized on getResolveLock() because this method is called by the * applicator thread which has been synchronized on getResolveLock() in TCObjectImpl.hydrate(). */ @Override public void setLiteralValue(Object newValue) { Assert.eval(newValue != null); setPeerObject(getObjectManager().newWeakObjectReference(getObjectID(), newValue)); }
/** * Unlike literalValueChange, this method is not synchronized on getResolveLock() because this method is called by the * applicator thread which has been synchronized on getResolveLock() in TCObjectImpl.hydrate(). */ @Override public void setLiteralValue(Object newValue) { Assert.eval(newValue != null); setPeerObject(getObjectManager().newWeakObjectReference(getObjectID(), newValue)); }
private int clearArrayReferences(Object[] array) { int cleared = 0; int l = array.length; for (int i = 0; i < l; i++) { Object o = array[i]; if (o == null) continue; if (getObjectManager().isManaged(o)) { ObjectID lid = getObjectManager().lookupExistingObjectID(o); ObjectID old = setReference(Integer.toString(i), lid); if (old != null && !lid.equals(old)) { // Formatting throw new AssertionError("clearArrayReferences : mapped [" + i + "] to " + lid + " while there was an exisiting mapping in references : " + old + " : TCObject = " + getObjectID() + " : " + this + " version = " + this.getVersion()); } array[i] = null; cleared++; } } return cleared; }
@Override public void literalValueChanged(Object newValue, Object oldValue) { Assert.eval(newValue != null); getObjectManager().getTransactionManager().literalValueChanged(this, newValue, oldValue); setPeerObject(getObjectManager().newWeakObjectReference(getObjectID(), newValue)); }
@Override public void literalValueChanged(Object newValue, Object oldValue) { Assert.eval(newValue != null); getObjectManager().getTransactionManager().literalValueChanged(this, newValue, oldValue); setPeerObject(getObjectManager().newWeakObjectReference(getObjectID(), newValue)); }