{
log.debug("Reading object for id=" + reference + " classLoader=" + cache.getLoader() + " className = " + metaData.getClassName());
}
byte persisterId = input.readByte();
Persister persister = PersistResolver.resolvePersister(persisterId);
//Persister persister = PersistResolver.resolvePersister(description.getMetaData().getClazz(),
// description.getMetaData(),description.getMetaData().isArray());
/*ObjectDescription description = new ObjectDescription();
description.setMetaData(ClassMetamodelFactory.getClassMetaData(reference.getClassName(),cache.getLoader(),false));
cache.putObjectInCache(reference,description); */
Object value = persister.readData(cache.getLoader(), streamingClass, metaData, reference, cache, cache.getInput(), cache.getSubstitution());
if (!(persister instanceof ClassReferencePersister)) //JBSER-83
{
if (cache.getSubstitution()!=null)
{