private void setUpFields(final ObjectAdapter adapter, final ObjectData adapterData, final KnownObjectsRequest knownObjects) {
final Data[] fieldContent = adapterData.getFieldContent();
if (fieldContent != null && fieldContent.length > 0) {
final ObjectAssociation[] fields = fieldOrderCache.getFields(adapter.getSpecification());
if (fields.length != fieldContent.length) {
throw new IsisRemoteException("Data received for different number of fields; expected " + fields.length + ", but was " + fieldContent.length);
}
for (int i = 0; i < fields.length; i++) {
final ObjectAssociation field = fields[i];
final Data fieldData = fieldContent[i];
if (fieldData == null || field.isNotPersisted()) {