Ignore:
Timestamp:
2014-04-10T14:39:33+12:00 (10 years ago)
Author:
kjdon
Message:

Lots of changes. Mainly to do with removing this.doc from everywhere. Document is not thread safe. Now we tend to create a new Document everytime we are starting a new page/message etc. in service this.desc_doc is available as teh document to create service info stuff. But it should only be used for this and not for other messages. newDOM is now static for XMLConverter. method param changes for some GSXML methods.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/IViaSearch.java

    r25727 r28966  
    2323 *
    2424 * @author Katherine Don
    25  * @author <a href="mailto:[email protected]">Chi-Yu Huang</a>
     25 * @author Chi-Yu Huang
    2626 */
    2727
     
    7676    /** Process a text query - implemented by concrete subclasses */
    7777    protected Element processTextQuery(Element request) {
     78      Document result_doc = XMLConverter.newDOM();
    7879    // Create a new (empty) result message
    79     Element result = this.doc.createElement(GSXML.RESPONSE_ELEM);
     80    Element result = result_doc.createElement(GSXML.RESPONSE_ELEM);
    8081    result.setAttribute(GSXML.FROM_ATT, QUERY_SERVICE);
    8182    result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS);
    82     Element doc_node_list = this.doc.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
     83    Element doc_node_list = result_doc.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
    8384    result.appendChild(doc_node_list);
    8485    Element param_list = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
     
    127128        doc_ids = reader.readLine();
    128129    } catch (java.net.MalformedURLException e) {
    129         GSXML.addError(this.doc, result, "Malformed URL: "+url_string);
     130        GSXML.addError(result, "Malformed URL: "+url_string);
    130131        return result;
    131132    } catch (java.io.IOException e) {
    132         GSXML.addError(this.doc, result, "IOException during connection to "+url_string+": "+e.toString());
     133        GSXML.addError(result, "IOException during connection to "+url_string+": "+e.toString());
    133134        return result;
    134135    }
     
    152153        result_string.append("Exception: "+e);
    153154        }
    154         GSXML.addError(this.doc, result, result_string.toString());
     155        GSXML.addError(result, result_string.toString());
    155156       
    156157        return result;
     
    158159   
    159160    // get the num docs and add to a metadata list
    160     Element metadata_list = this.doc.createElement(GSXML.METADATA_ELEM+GSXML.LIST_MODIFIER);
     161    Element metadata_list = result_doc.createElement(GSXML.METADATA_ELEM+GSXML.LIST_MODIFIER);
    161162    result.appendChild(metadata_list);
    162163   
    163164    // Add a metadata element specifying the number of matching documents
    164165    long numdocs = Long.parseLong(results_num);
    165     GSXML.addMetadata(this.doc, metadata_list, "numDocsMatched", ""+numdocs);   
     166    GSXML.addMetadata(metadata_list, "numDocsMatched", ""+numdocs);
    166167    String [] ids = doc_ids.split(" ");
    167168   
    168169    for (int d=0; d<ids.length; d++) {
    169         Element doc_node = this.doc.createElement(GSXML.DOC_NODE_ELEM);
     170        Element doc_node = result_doc.createElement(GSXML.DOC_NODE_ELEM);
    170171        doc_node.setAttribute(GSXML.NODE_ID_ATT, ids[d]);
    171172        doc_node_list.appendChild(doc_node);
Note: See TracChangeset for help on using the changeset viewer.