protected Method getTimeoutCallback(NamedMethodMetaData timeoutMethodMetaData, Class<?> beanClass)
{
String methodName = null;
Class<?>[] timeoutMethodParams = null;
JBossEnterpriseBeanMetaData metaData = xml;
if(metaData != null)
{
if(timeoutMethodMetaData != null)
{
// timeout method name
methodName = timeoutMethodMetaData.getMethodName();
// timeout method params
MethodParametersMetaData methodParams = timeoutMethodMetaData.getMethodParams();
String[] paramTypes = methodParams == null ? null : methodParams.toArray(new String[methodParams.size()]);
timeoutMethodParams = this.loadTimeoutMethodParamTypes(beanClass.getClassLoader(), paramTypes);
}
}
Method timeoutMethod = timeoutMethodCallbackRequirements.getTimeoutMethod(beanClass, methodName, timeoutMethodParams);
if(timeoutMethod != null)
return timeoutMethod;
// TODO: should not be needed
// TODO: ServiceContainer does not container correct metadata
if(metaData != null)
{
// TODO: cross cutting concern
if(metaData.getEjbJarMetaData().isMetadataComplete())
return null;
}
for (Method method : beanClass.getMethods())
{