{
Decorator<?> dec = decorators.get(i);
WebBeansDecorator<?> decorator = (WebBeansDecorator<?>)dec;
if(!decorator.isPassivationCapable())
{
throw new WebBeansConfigurationException(MessageFormat.format(
WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0015), toString()));
}
else
{
decorator.validatePassivationDependencies();
}
}
for(int i = 0, size = interceptorStack.size(); i < size; i++)
{
InterceptorData interceptorData = interceptorStack.get(i);
if(interceptorData.isDefinedWithWebBeansInterceptor())
{
WebBeansInterceptor<?> interceptor = (WebBeansInterceptor<?>)interceptorData.getWebBeansInterceptor();
if(!interceptor.isPassivationCapable())
{
throw new WebBeansConfigurationException(MessageFormat.format(
WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0016), toString()));
}
else
{
interceptor.validatePassivationDependencies();
}
}
else
{
if(interceptorData.isDefinedInInterceptorClass())
{
Class<?> interceptorClass = interceptorData.getInterceptorClass();
if(!Serializable.class.isAssignableFrom(interceptorClass))
{
throw new WebBeansConfigurationException(MessageFormat.format(
WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0016), toString()));
}
else
{
if(!getWebBeansContext().getAnnotationManager().checkInjectionPointForInterceptorPassivation(interceptorClass))
{
throw new WebBeansConfigurationException(MessageFormat.format(
WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0017), toString(), interceptorClass));
}
}
}
}