Buggy code:
private static final int DETACH_REQUEST = 5 ; private static final int DONE = 6 ; private static final Logger log = LoggerFactory . getLogger ( RequestCycle . class ) ; private static final int NOT_STARTED = 0 ; private static final int PREPARE_REQUEST = 1 ; private static final int PROCESS_EVENTS = 3 ; private static final int RESOLVE_TARGET = 2 ; private static final int RESPOND = 4 ; private MetaDataEntry < ? > [ ] metaData ; private boolean handled = true ; public static RequestCycle get ( ) { } protected static void set ( RequestCycle cycle ) { } private RequestCycle previousOne = null ; private boolean automaticallyClearFeedbackMessages = true ; private int currentStep = RequestCycle . NOT_STARTED ; private boolean handlingException = false ; private final Response originalResponse ; private boolean redirect ; private final transient ArrayListStack < IRequestTarget > requestTargets = new ArrayListStack < IRequestTarget > ( 3 ) ; private PageParameters pageParameters ; private Session session ; private final long startTime = System . currentTimeMillis ( ) ; protected final Application application ; protected final IRequestCycleProcessor processor ; protected Request request ; protected Response response ; private transient boolean urlForNewWindowEncoding ; protected RequestCycle ( final Application application , final Request request , final Response response ) { } public final Application getApplication ( ) { } public final ClientInfo getClientInfo ( ) { } public final Response getOriginalResponse ( ) { } public final PageParameters getPageParameters ( ) { } public abstract IRequestCycleProcessor getProcessor ( ) { } @ Deprecated public final boolean getRedirect ( ) { } public final Request getRequest ( ) { } public final IRequestTarget getRequestTarget ( ) { } public final Response getResponse ( ) { } public final Page getResponsePage ( ) { } public final Class < ? extends Page > getResponsePageClass ( ) { } public final Session getSession ( ) { } public final long getStartTime ( ) { } public boolean isRedirect ( ) { } public Page onRuntimeException ( Page page , RuntimeException e ) { } public abstract void redirectTo ( final Page page ) { } public final void request ( ) { } public final void request ( final Component component ) { } public final void request ( IRequestTarget target ) { } public void setAutomaticallyClearFeedbackMessages ( boolean automaticallyClearFeedbackMessages ) { } public final void setRedirect ( final boolean redirect ) { } public final void setRequest ( Request request ) { } public final void setRequestTarget ( IRequestTarget requestTarget ) { } public final Response setResponse ( final Response response ) { } private String getCurrentPageMap ( ) { } public final < C extends Page > void setResponsePage ( final Class < C > pageClass ) { } public final < C extends Page > void setResponsePage ( final Class < C > pageClass , final PageParameters pageParameters ) { } public final < C extends Page > void setResponsePage ( final Class < C > pageClass , final PageParameters pageParameters , final String pageMapName ) { } public final void setResponsePage ( final Page page ) { } @ Override public String toString ( ) { } public final boolean isUrlForNewWindowEncoding ( ) { } public final void setUrlForNewWindowEncoding ( ) { } private final CharSequence encodeUrlFor ( final IRequestTarget requestTarget ) { } public final < C extends Page > CharSequence urlFor ( final Class < C > pageClass , final PageParameters parameters ) { } public final CharSequence urlFor ( final Component component , final IBehavior behaviour , final RequestListenerInterface listener ) { <START_BUG> int index = component . getBehaviors ( ) . indexOf ( behaviour ) ; <END_BUG> if ( index == ( - 1 ) ) { throw new IllegalArgumentException ( ( ( ( "Behavior<seq2seq4repair_space>" + ( this ) ) + "<seq2seq4repair_space>was<seq2seq4repair_space>not<seq2seq4repair_space>registered<seq2seq4repair_space>with<seq2seq4repair_space>this<seq2seq4repair_space>component:<seq2seq4repair_space>" ) + ( component . toString ( ) ) ) ) ; } RequestParameters params = new RequestParameters ( ) ; params . setBehaviorId ( String . valueOf ( index ) ) ; if ( ( request ) instanceof ServletWebRequest ) { ServletWebRequest swr = ( ( ServletWebRequest ) ( request ) ) ; int urlDepth = swr . getRequestParameters ( ) . getUrlDepth ( ) ; params . setUrlDepth ( ( urlDepth > ( - 1 ) ? urlDepth : swr . getDepthRelativeToWicketHandler ( ) ) ) ; } final IRequestTarget target = new org . apache . wicket . request . target . component . listener . BehaviorRequestTarget ( component . getPage ( ) , component , listener , params ) ; return encodeUrlFor ( target ) ; } public final CharSequence urlFor ( final Component component , final RequestListenerInterface listener , ValueMap params ) { } public final CharSequence urlFor ( final Component component , final RequestListenerInterface listener ) { } public final < C extends Page > CharSequence urlFor ( final IPageMap pageMap , final Class < C > pageClass , final PageParameters parameters ) { } public final CharSequence urlFor ( final IRequestTarget requestTarget ) { } public final CharSequence urlFor ( final Page page ) { } public final CharSequence urlFor ( final PageId id ) { } public final CharSequence urlFor ( final ResourceReference resourceReference ) { } public final CharSequence urlFor ( final ResourceReference resourceReference , ValueMap parameters ) { } private void checkReuse ( ) { } public void detach ( ) { } private void prepare ( ) { } private final void processEventsAndRespond ( ) { } private final void respond ( ) { } private final IRequestCycleProcessor safeGetRequestProcessor ( ) { } private boolean sessionExists ( ) { } private final void step ( ) { } public boolean wasHandled ( ) { } private final void steps ( ) { } private final void threadDetach ( ) { } final void setPageParameters ( PageParameters parameters ) { }

Fix:
int index = component . getBehaviorsRawList ( ) . indexOf ( behaviour ) ;