final SerializableClass sc = registry.lookup(objClass);
if ((descriptor.getFlags() & SC_EXTERNALIZABLE) != 0) {
if (sc.hasObjectInputConstructor()) {
obj = sc.callObjectInputConstructor(blockUnmarshaller);
} else if (sc.hasPublicNoArgConstructor()) {
obj = sc.callNoArgConstructor();
} else {
throw new InvalidClassException(objClass.getName(), "Class is non-public or has no public no-arg constructor");
}
idx = instanceCache.size();
instanceCache.add(unshared ? UNSHARED : obj);