} else
{ // We have been here before so let's return.
return false;
}
CachedType type = cache.getCachedType(originalObject.getClass());
for (Iterator i = type.getFieldsIterator(); i.hasNext();) {
Field field = (Field) i.next();
Object value = null;
try {
value=field.get(originalObject); // Reflection may not work here.
}
catch(IllegalAccessException e) {
throw new CacheException("field access failed", e);
}
CachedType fieldType = cache.getCachedType(field.getType());
if (fieldType.isImmediate()) {
} else {
if(value instanceof Map)
{
Set set = ((Map)value).keySet();
for(Iterator it=set.iterator(); it.hasNext();)