final String id = getRequestParameters().getBehaviorId();
if (id == null)
{
// wicket-2107
throw new PageExpiredException(
"Parameter behaviorId was not provided: unable to locate listener. Component: " +
component.toString());
}
final int idAsInt = Integer.parseInt(id);
final List<IBehavior> behaviors = component.getBehaviorsRawList();
if (behaviors == null)
{
throw new PageExpiredException("No behaviors attached to component " +
component.toString());
}
IBehaviorListener behaviorListener = null;
if (behaviors.size() > idAsInt)
{
IBehavior behavior = behaviors.get(idAsInt);
if (behavior instanceof IBehaviorListener)
{
if (!behavior.isEnabled(component))
{
// ignore this request
logger.warn(
"behavior not enabled; ignoring call. behavior: {} at index: {} on component: {}",
new Object[] { behavior, idAsInt, component });
if (requestCycle.getRequest() instanceof WebRequest &&
((WebRequest)requestCycle.getRequest()).isAjax())
{
throw new AbortException();
}
return;
}
behaviorListener = (IBehaviorListener)behavior;
}
}
if (behaviorListener == null)
{
// wicket-2107
throw new PageExpiredException("No behavior listener found with behaviorId " + id +
"; Component: " + component.toString());
}
if (!component.isVisibleInHierarchy() ||
(!(behaviorListener instanceof IIgnoreDisabledComponentBehavior) && !component.isEnabledInHierarchy()))