}
verifyAttached(invocation.getTargetObject());
// Only if this field is replicatable. static, transient and final are not.
CachedType fieldType = pCache_.getCachedType(field.getType());
Object value = ((FieldWriteInvocation) fieldInvocation).getValue();
if (!CachedType.isNonReplicable(field))
{
if (CachedType.isSimpleAttribute(field))
{
cache_.put(fqn_, field.getName(), value);
}
else
{
pCache_.attach(fqn_, value, field.getName());
}
}
Object obj = fieldInvocation.getTargetObject();
util_.inMemorySubstitution(obj, field, value);
}
else if (invocation instanceof FieldReadInvocation)
{
FieldInvocation fieldInvocation =
(FieldInvocation) invocation;
Field field = fieldInvocation.getField();
Advisor advisor = fieldInvocation.getAdvisor();
// Only if this field is replicatable
CachedType fieldType = pCache_.getCachedType(field.getType());
if (!CachedType.isNonReplicable(field))
{
Object result;
if (CachedType.isSimpleAttribute(field))
{