Ignore:
Timestamp:
2005-02-10T16:50:32+13:00 (19 years ago)
Author:
kjdon
Message:

added a check for null term element in search term highlighting code. fields for mgpp were being parsed as a term, but don't match a term element

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/action/DocumentAction.java

    r8833 r9007  
    609609        String term = performed_query.substring(term_start, i);
    610610        System.err.println("Term: " + term);
    611 
    612         HashSet phrase_query_p_term_x_variants = new HashSet();
     611       
    613612        Element term_element = GSXML.getNamedElement(query_term_list_element, GSXML.TERM_ELEM, GSXML.NAME_ATT, term);
    614         NodeList term_equivalent_terms_nodelist = term_element.getElementsByTagName("equivTermList");
    615         for (int j = 0; j < term_equivalent_terms_nodelist.getLength(); j++) {
    616             Element term_equivalent_terms_element = (Element) term_equivalent_terms_nodelist.item(j);
    617             String[] term_equivalent_terms = GSXML.getAttributeValuesFromList(term_equivalent_terms_element, GSXML.NAME_ATT);
    618             for (int k = 0; k < term_equivalent_terms.length; k++) {
    619             System.err.println("Adding query term variant: " + term_equivalent_terms[k]);
    620             phrase_query_p_term_x_variants.add(term_equivalent_terms[k]);
     613        if (term_element != null) {
     614           
     615            HashSet phrase_query_p_term_x_variants = new HashSet();
     616           
     617            NodeList term_equivalent_terms_nodelist = term_element.getElementsByTagName("equivTermList");
     618            for (int j = 0; j < term_equivalent_terms_nodelist.getLength(); j++) {
     619            Element term_equivalent_terms_element = (Element) term_equivalent_terms_nodelist.item(j);
     620            String[] term_equivalent_terms = GSXML.getAttributeValuesFromList(term_equivalent_terms_element, GSXML.NAME_ATT);
     621            for (int k = 0; k < term_equivalent_terms.length; k++) {
     622                System.err.println("Adding query term variant: " + term_equivalent_terms[k]);
     623                phrase_query_p_term_x_variants.add(term_equivalent_terms[k]);
     624            }
    621625            }
    622         }
    623         phrase_query_p_term_variants_list.add(phrase_query_p_term_x_variants);
    624 
    625         if (in_phrase == false) {
    626             phrase_query_term_variants_hierarchy.add(phrase_query_p_term_variants_list);
    627             phrase_query_p_term_variants_list = new ArrayList();
    628         }
    629         }
    630 
     626            phrase_query_p_term_variants_list.add(phrase_query_p_term_x_variants);
     627           
     628            if (in_phrase == false) {
     629            phrase_query_term_variants_hierarchy.add(phrase_query_p_term_variants_list);
     630            phrase_query_p_term_variants_list = new ArrayList();
     631            }
     632        }
     633        }
    631634        // Watch for phrases (surrounded by quotes)
    632635        if (character == '\"') {
Note: See TracChangeset for help on using the changeset viewer.