in webbeans-impl/src/main/java/org/apache/webbeans/intercept/DefaultInterceptorHandler.java [217:276]
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
{
target = (T) in.readObject();
if (in.readBoolean())
{
delegate = target;
}
else
{
delegate = (T) in.readObject();
}
int instancesSize = in.readInt();
WebBeansContext webBeansContext = WebBeansContext.getInstance();
BeanManager beanManager = webBeansContext.getBeanManagerImpl();
Map<Interceptor<?>, Object> tmpInstances = new HashMap<>();
for (int i = 0; i < instancesSize; i++)
{
Interceptor<?> interceptor = readInterceptor(in.readUTF(), beanManager);
if (!SelfInterceptorBean.class.isInstance(interceptor))
{
Object value = in.readObject();
tmpInstances.put(interceptor, value);
}
else
{
tmpInstances.put(interceptor, target);
}
}
instances = tmpInstances;
int interceptorsSize = in.readInt();
interceptors = new HashMap<>(interceptorsSize);
for (int i = 0; i < interceptorsSize; i++)
{
Class<?> declaringClass = (Class<?>) in.readObject();
String name = in.readUTF();
Class<?>[] parameters = (Class<?>[]) in.readObject();
Method method;
try
{
method = declaringClass.getDeclaredMethod(name, parameters);
}
catch (NoSuchMethodException e)
{
throw new NotSerializableException(target.getClass().getName());
}
int interceptorListSize = in.readInt();
List<Interceptor<?>> interceptorList = new ArrayList<>(interceptorListSize);
for (int j = 0; j < interceptorListSize; j++)
{
interceptorList.add(readInterceptor(in.readUTF(), beanManager));
}
interceptors.put(method, interceptorList);
}
beanPassivationId = in.readUTF();
}