Buggy code:
@ Import ( library = "Question.js" ) public class Question { private static final String SUBJECTS = "subjects" ; private static final String EDITOR_CLASS = "editorClass" ; private static final String OBJECTS = "objects" ; private static final String PREDICATES = "predicates" ; private static final String STARTING_PREDICATE_CHANGE = "startingPredicateChange" ; private static final String ADD_FIRST_FILTER = "addFirstFilter" ; private static final String ADD_SECOND_FILTER = "addSecondFilter" ; private static final String ADD_FILTER = "addFilter" ; private static final String FIRST_FILTER_PREDICATE = "firstFilterPredicate" ; private static final String SECOND_FILTER_PREDICATE = "secondFilterPredicate" ; private static final String FILTERS = "filters" ; @ Property @ Persist private Query query ; @ Persist @ SuppressWarnings ( "unused" ) @ Property private Map < String , String > subjects ; @ Persist @ SuppressWarnings ( "unused" ) @ Property private Map < String , String > predicates ; @ Property @ SuppressWarnings ( "unused" ) private List < String > emptyList ; @ InjectComponent private Zone resultsZone ; @ InjectComponent private Filter firstFilter ; @ InjectComponent private Filter secondFilter ; @ Inject private StaticDataService staticDataService ; @ Inject private JavaScriptSupport jsSupport ; @ Inject private ComponentResources resources ; @ Inject private Messages messages ; @ SuppressWarnings ( "unused" ) @ SetupRender private void setup ( ) { } @ AfterRender public void initJs ( ) { } @ OnEvent ( "startingPredicateChange" ) <START_BUG> public Object handleStartingPredicateChange ( @ RequestParameter ( "startingPredicate" ) <END_BUG> String startingPredicate ) { final Map < String , String > predicates = staticDataService . getClasses ( startingPredicate ) ; return generateSelectOptionsJson ( ( ( HashMap < String , String > ) ( predicates ) ) , Question . SUBJECTS ) ; } @ OnEvent ( Question . ADD_FIRST_FILTER ) public Object handleAddFirstFilterEvent ( @ RequestParameter ( "subject" ) String subject ) { } @ OnEvent ( Question . ADD_SECOND_FILTER ) public Object handleAddSecondFilterEvent ( @ RequestParameter ( "subject" ) String subject , @ RequestParameter ( "predicate" ) String predicate , @ RequestParameter ( "object" ) String object ) { } @ OnEvent ( Question . FIRST_FILTER_PREDICATE ) public Object handleFirstFilterPredicateChanged ( @ RequestParameter ( "subject" ) String subject , @ RequestParameter ( "predicate" ) String predicate ) { } @ OnEvent ( Question . SECOND_FILTER_PREDICATE ) public Object handleSecondFilterPredicateChanged ( @ RequestParameter ( "subject" ) String subject , @ RequestParameter ( "predicate" ) String predicate , @ RequestParameter ( "firstFilterPredicate" ) String firstFilterPredicate , @ RequestParameter ( "firstFilterObject" ) String firstFilterObject ) { } private Object generateJsonForPredicateEvent ( String predicate , HashMap < String , String > objects ) { } private Object generateJsonForSecondPredicateEvent ( String predicate , HashMap < String , String > objects ) { } private void populateEditorPropertyInJson ( String predicate , HashMap < String , String > objects , final JSONObject data ) { } private JSONObject generateSelectOptionsJson ( HashMap < String , String > itemMap , String name ) { } private void addStartingPredicateInitializerCall ( ) { } private void addFiltersInitializerCall ( ) { } private void addAddFilterInitializerCall ( ) { } @ OnEvent ( EventConstants . SUCCESS ) public Object askQuestion ( ) { } }

Fix:
public Object handleStartingPredicateChange ( @ RequestParameter ( value = "startingPredicate" , allowBlank = true )