Jira Custom Field Search Query Too Complex

I have a custom field based on a custom field type that we created. The custom field type extends the AbstractCustomFieldType<Collection, String> class. In basic search mode, the custom field works fine and the option are selectable. However, if I switch to Advanced mode and execute the search, Basic mode is greyed out and shows “This query is too complex to display in Simple mode.”

In an attempt to troubleshoot the problem, I created a new class by extending the MultiSelectCustomFieldSearchInputTransformer class and overriding the getParamsFromSearchRequest method with a copy of the original but with added logging.

@Override
    protected CustomFieldParams getParamsFromSearchRequest(ApplicationUser user, Query query, SearchContext searchContext) {
        log.debug("getParamsFromSearchRequest");

        if (query != null && query.getWhereClause() != null) {
            SimpleNavigatorCollectorVisitor visitor = new SimpleNavigatorCollectorVisitor(this.clauseNames.getJqlFieldNames());
            query.getWhereClause().accept(visitor);

            if (visitor.isValid() && visitor.getClauses().size() == 1) {
                TerminalClause clause = (TerminalClause)visitor.getClauses().get(0);
                log.debug("clause " + clause.toString());

                if (this.isValidOperatorForFitness(clause.getOperator())) {
                    List<QueryLiteral> literals = this.jqlOperandResolver.getValues(user, clause.getOperand(), clause);
                    log.debug("literals " + literals.toString());

                    if (literals != null && !literals.contains(new QueryLiteral())) {
                        Set<String> valuesAsStrings = new HashSet();
                        Iterator var8 = literals.iterator();

                        while(var8.hasNext()) {
                            QueryLiteral literal = (QueryLiteral)var8.next();
                            log.debug("literal " + literal.getStringValue());
                            List<Option> options = this.jqlSelectOptionsUtil.getOptions(this.field, literal, false);
                            log.debug("options " + options.toString());

                            if (options.isEmpty()) {
                                return null;
                            }

                            Iterator var11 = options.iterator();

                            while(var11.hasNext()) {
                                Option option = (Option)var11.next();
                                valuesAsStrings.add(option.getOptionId().toString());
                            }
                        }

                        if (valuesAsStrings.isEmpty()) {
                            log.debug("2 getParamsFromSearchRequest return null");
                            return null;
                        }

                        log.debug("getParamsFromSearchRequest return CustomFieldParamsImpl");
                        return new CustomFieldParamsImpl(this.getCustomField(), valuesAsStrings);
                    }
                }
            }
        }

clause = {Applications in (“ADM”, “ARM”)}
literals = [ADM, ARM]

However, when it iterates through the literals, it returns an empty list for options for the first literal and the method returns null. This is where I’m stuck in the debugging/troubleshooting process.

List<Option> options = this.jqlSelectOptionsUtil.getOptions(this.field, literal, false);

Any help or suggestions would be appreciated. Thanks.