}
public Object readObject(JBossSeralizationInputInterface input, ObjectsCache cache, StreamingClass streamingClass, int reference) throws IOException {
ClassMetaData metaData = streamingClass.getMetadata();
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) {
value = cache.getSubstitution().replaceObject(value);